消息中间件_草稿图
2024-01-28 10:10:13 5 举报
消息中间件草稿图是一种用于描述消息中间件系统架构的图形化工具。它通常包括以下几个主要组件:消息生产者、消息队列、消息消费者和消息存储。消息生产者负责将消息发送到消息队列,而消息消费者则从队列中获取并处理这些消息。消息存储用于持久化消息,以便在系统崩溃时不会丢失数据。此外,消息中间件还可能包括一些额外的功能,如消息过滤、优先级设置和消息追踪等。总之,消息中间件草稿图是一种直观且易于理解的工具,可以帮助开发人员更好地理解和设计消息中间件系统。
作者其他创作
大纲/内容
TopicBpartition-0Follower
ConsumeQueue
内核态
Consumer3
Follower
服务端JVM内存
MessageQueue
2.Half Message Success
Virtual Host
Consumer
3
Producer
copy
DMA Copy
borker的消息磁盘文件
Producer Group
用户态内存
2
M4
index
操作系统
文件页缓存
Master
DMA
应用程序
Java Heap
TopicApartition-1Follower
M1
网络
NameServer集群
读队列1
socket缓冲区
内核态内存
M3
NameServer
Slave
broker-0
M5
内存
同步消息
Channel
4
用户空间(JVM)
1
ConsumerQueue:消费者队列
topic一般设置副本数为2
磁盘
Queue
Consumer Group 0
MessageQueue3
Consumer2
DledgerServer
写队列1
Partiton-0
....
CPU Copy
Consumer Group 1
TimeStamp
HW|LEO
minOffset
consumerOffset
用千兆网卡
dispatch
Topic、QueueId、Message
生产者
4.Commit or rollback
Message
Consumer Group
写队列3
TopicApartition-1Leader
HW
CommitLog Offset
VirtualHost
Commit:consume
LEO
Broker
网卡
send
Broker2
MessageQueue5
Connection
写队列4
Consumer-1
Consumer-0
IO接口
size
MessageQueue2
亿级流量电商(每日点击上亿次)
kafka Cluster
10*2=20亿数据
write
6台16核32G物理机,每台3T磁盘
MessageQueue1
②Producer
MQ Consumer
5
Memory
注册
success
Topic-1
用户态
假设一条数据1KB
Broker1
controller
Consumer1
Leader
M2
Index linked List
Socket缓冲区
read
网卡接口
同步刷盘
TopicApartition-0Follower
硬盘
Exchange
3.Execute
local transaction
Follower Broker
flush
Leader Broker
CommitLog
phyOffset、keys
QPS:6w/s
QPS: 6 * 5 = 30w/s
写队列2
Key Hash
Broker集群
磁盘选普通机械硬盘即可,没必要像MySQL那样选SSD,SSD性能高在磁盘随机读写,但是kafka更多的是顺序读写,这种情况用普通机械硬盘跟SSD性能差别不大,但是SSD会贵很多,没必要
Topic
内核读取缓冲区
Slot Table
CPU
MessageQueue6
Client
③生产者写入消息Leader更新更新LEO
TopicCpartition-0Leader
Kafka
Header
6.Check local transaction status
每秒6w条消息,差不多每秒要传输60M数据峰值时可能两三百兆,一般用千兆网卡差不多了,可能峰值流量过来会打满网卡,因为千兆网卡实际能传输的可能每秒就一两百兆,当然用万兆网卡是最好了不过要综合考虑成本因素
Dledger CommitLog
TopicBpartition-0Leader
①Follower完全赶上Leader,如果Leader没有消息,则阻塞
.....
20*7=140亿数据
push
IndexFile:索引文件
Subscription Relationship
MessageQueue4
一般需要在QPS均值上放大5到10倍应对瞬间高峰流量
磁盘容量:近14TB
异步刷盘
RabbitMQ Server
每秒6万条消息
TopicApartition-0Leader
Partion-1
NextIndexOffset
Consumer-2
RocketMQServer
数据假设默认保留7天(视业务情况而定)
Rollback:discard
MQ Producer
Kafka消费程序
maxOffset
CommitLogMessage
CommitLogOffset、msgSize、tagCode
⑥ISR的所有节点都成功复制了消息5,Leader的HW更新到5,所有的Follower都catch-up上了Leader,又等待Leader的新消息
Local Transaction
Message Tag HashCode
用户缓冲区
写入消息
MQ Server
MQServer
DMA控制器
disk
Zookeeper
TopicCpartition-0Follower
1.Send Half Message
80%数据集中在20%时间产生
④Leader有新消息,会将阻塞的Follower解锁通知它们来取新消息,Follower开始fetch消息
8亿数据集中在4小时
140亿KB
内核空间
日均十亿消息数据
send commit or rollback response
Routing
0 条评论
回复 删除
下一页