马蜂窝从MongoDB到TiDB的异构升迁

结合马蜂窝现状和技术转型,从 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

TiDB User Group(简称 TUG)是由 TiDB 用户发起的独立用户社区,以线上的 AskTUG 问答社区和线下的 TUG 技术沙龙为大本营。 用户在 TUG 社区可以学习前沿技术知识,发表技术见解,结识圈内朋友,共同建设 TiDB 项目。 目前全国共有北京、上海、杭