设计一个消息队列的思考点

导图

所以主要考虑的点是:

P1.1. MQ 要有基础的消息管理能力(CRUD)

P1.2. MQ 要有产消日志

P2. MQ将消息存储成功才能响应成功

P3.1 MQ将消息存储 = 分片存储

P3.2 扩容的实现思路(如何在扩容的时候更方便高效)

P4.1 数据要有副本(分片副本)

P4.2 数据副本的传输问题(socket or 其它,同步 or 异步?)

P4.3 数据节点的主从切换,且要对消费者无感

P5.1 主从节点的选举协议

P5.2 分片数据的重加载

P5.3 分片数据与增量数据的混合问题

P5.4 内存数据的排序

R1. ack 机制

R2. 消息丢弃(其实就是 ack,更本质就是消息状态更新处理)

T1. 发布订阅模式(也就是常说的 broker )

优化

有了主要思路后,就要考虑更多的优化细节。

  1. 正确的利用COW 机制避免入坑

  1. 网络传输的零拷贝能力的应用

  1. 正确利用磁盘的数据页,提升刷数据的效率

  1. 数据结构 (分片算法)

小结

以上是从不同的角色需求出发,结合任务标的本身的特性思考如何设计一个MQ,新年开篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爬上树顶

打赏可验证我能否靠此文财务自由

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值