PhxQueue——微信开源高可用强一致分布式队列的设计与实现

Cartel

2017/10/18 发布于 技术 分类

PhxQueue——微信开源高可用强一致分布式队列的设计与实现

QCon  QCon2017 

文字内容
6. • • • 2011 • • • • • • • Unixliang 11
7. • • • • PhxQueue PhxQueue
8. • • • • • •
9. • • • • • • • • •
10. • • • • • • • • PhxQueue -
11. • • • • Producer – Store – (NRW) Consumer – Zookeeper –
12. Store • N=3, W=2, R=2 Store • Filter=3 • Memcached MD5
13. 1. 40.9% • • 1 • NRW Memcached • Memcached : • • • 2
14. 2. • • • 3.37% NRW 1 2
15. Consumer:'>Consumer: 3. • • • Consumer:'>Consumer: : Consumer • 4. ( • • • • DC ) Consumer
16. • • • • • • • • Paxos
17. (PhxQueue) • • • • • • • • • • / /
18. (PhxQueue)
19. (PhxQueue) Store – • • • • Paxos
20. (PhxQueue) Store – Paxos • • • • Sched – • • • (master) 1. master 2. master . , Sched
21. (PhxQueue) Store – • • • • Paxos Sched – • • • (master) Lock – • • • • Paxos Sched master
22. • • • • • • • • • • Plog as queue • Group Commit • • Store • Store • • Consumer
23. PhxPaxos paxos log instance id check point • Paxos •
24. (1/2) – Plog as queue : 2 ( 6 , : PLog as Queue : , )
25. (2/2) – Group commit 1: (1.5k -> 4k) 2: DC RTT 4ms, • • • • • : • • : Paxos : 5ms N Queue : 1 Paxos group Paxos group – Paxos group – Paxos group 100 QPS 50w 20 20
26. (1/4) – Store or • • • Store • • • • : : master master, , : : , • master : Paxos queue, master , ,
27. (2/4) – Store : • • • • : master master : : : master master master 1 3 Store (live) 4 Store (dead) Paxos Group master 3 6 Master HA 2 6 5
28. (3/4) – Sched Zookeeper 20 • • : • master:'>master:master:'>master: • : • • master /
29. (4/4) – Consumer Consumer For each consumer: new_weight ⬇ = default_weight * mean_load / load ⬆; • Sched Consumer • Consumer 1: Consumer : : hash , Kafka 2: : : 20s( ) 1s
30. • • • • • • • • •
31. • • • • - – /
32. • • • /CPU/
33. • • • uin =
34. • Consumer X • • • • • • + RPC API
35. • • • • • • • • • • – –
36. – – 3 64*2.4GHz, SSD Raid 10 Buffer 2K + •
37. – – PHXQueue
38. – 2.4% • 0.006% • ( • ) ,
39. – • • 2100w/min
40. • • • • • •
41. Paxos • • • • Plog as queue Store • • Group Commit Consumer • …… • • Paxos
42. PhxPaxos PhxPaxos Paxos • • • • https://github.com/tencent-wechat/phxpaxos
43. CKafka • • ISR CMQ • • Raft
45. About Kafka tolerate f-1 failures with f nodes • ISR • https://aphyr.com/posts/293jepsen-kafka