结合马蜂窝现状和技术转型,从 MongoDB 迈向集群分布式 NewSQL - TiDB,方便后续数据汇总同步,分析等多维度查询。
展开查看详情
1.MongoDB TiDB
2.MongoDB TiDB Ø MongoDB N Ø TiDB N ü + + ü ( ) + + ü json ü ü ü ü Sharded Cluster ü üWt CPU 3.2+ zlib
3.Part I -
4.Ø + 24.5 MongoDB Ø Ø MySQL+ ü ü Ø select+insert update delete
5.Ø -- Ø ES 15 Ø
6. Porxy Nginx Nginx Nginx …… ↓ index index index index index
7.Ø Java/Go Ø Ø searcher • • 2 • index + Ø MongoDB Oplog--Kafka-- MFW-seracher
8.Part 2 - MongoDB
9.Ø Ø Ø SQL Ø Ø
10.Part 3 -
11. TiDB Ø Ø MongoDB 23000 Ø + Ø Ø Ø
12.• • DML/DDL • • • • • • DDL • • • region • TiDB drainer • MongoDB MongoShake
13.Part 4 -
14.Ø id Ø Ø Ø Ø
15.
16. MongoDB TiDB TiDB MongoDB /Redis / MongoDB TiDB Oplog kafka TiDB MongoDB MongoDB kafka Drainer
17. Mongo -- TiDB -TiDB kafka TiDB MongoDB TiDB
18.a. max(gid) b. 1 max(gid) DML 1 TiDB DML 2. Redis < > • 6 . web [ ] • log
19.3. upadtedTime Oplog 4. 5. Count + 6. (1) TiDB MongoDB/TiDB (2) TiDB / TiDB (3) TiDB TiDB (4) TiDB MongoDB (5) TiDB TiDB (6) TiDB
20.• Oplog Kafka--TiDB https://github.com/yxlHuster/mongo-kafka • TiDB Mongodb
21.Ø Ø TiDB dump+drainer Kakfa MongoDB Ø gid+updatedTime
22.MFW- - / / Admin / Service1 …… ServiceN MongoDB TiDB
23. -- TiDB MFW- - / / Admin / Service1 …… ServiceN MongoDB TiDB
24.Ø circuitBreaker.requestVolumeThreshold // 20 circuitBreaker.errorThresholdPercentage // 50% circuitBreaker.sleepWindowInMilliseconds // 5000 5s Ø rpc fallback / Ø Ø MongoDB TiDB TiDB MongoDB
25.Kafka
26.Part 5 – TiDB
27.TiDB CPU PD 5 64 SSD 32c 3.0.7 CentOS Nvme 7.7.1908 TiDB 5 64 SSD 32c 3.0.7 CentOS Nvme 7.7.1908 TiKV 9 256G SSD 64c 3.0.7 CentOS Nvme 7.7.1908 TiDB 3.0.5 3.0.6 3.0.7
28.Ø 3 [ ] Ø TiKV
29.TiDB Client Client Client Client Client Client Proxy Proxy Proxy HA-A Spark Redis Cluster Proxy Big/Hot Key Redis Redis Redis Redis Redis TiDB TiDB TiDB Redis Cluster PD Pump TiDB TiKV TiKV TiKV TiKV Kfaka