这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
BMQ
-
兼容Kafka协议,存算分离,云原生消息队列
-
-
-
负载均衡
- 随机选择一定数量的DataNode
-
Broker-Partition状态机
-
Broker-写文件流程
-
Broker-写文件 Failover
- 替换,找到新的可用节点
-
Proxy
-
多机房部署
-
BMQ高级特性
-
-
泳道消息
- 解决主干泳道流量隔离问题以及泳道资源重复创建问题。
-
Databus
- 简化消息队列客户端复杂度
- 解耦业务与Topic
- 缓解集群压力,提高吞吐
-
Mirror
- 跨Region读写
-
Index
- 数据的查询
- 原生只支持 offset 和 时间戳
- 直接在BMQ中将数据结构化,配置索引DDL,异步构建索引后,通过Index Query 服务读出数据。
- 数据的查询
-
Parquet
- 直接在BMQ中将数据结构化,通过 Parquet Engine,可以使用不同的方式构建Parquet格式文件。
-
RocketMQ
- 例如,针对电商业务线,其业务涉及广泛,如注册、订单、库存、物流等;同时,也会涉及许多业务峰值时刻,如秒杀活动、周年庆、定期特惠等
- Kafka中的Partition概念在这里叫做ConsumerQueue
- 整台机器都是Master
- NameServer为集群提供轻量级服务发现和路由
- 对于一个Broker来说所有的消息的会append到一个CommitLog上面,然后按照不同的Queue,重新Dispatch到不同的Consumer中,这样Consumer就可以按照Queue进行拉取消费,但需要注意的是,这里的ConsumerQueue所存储的并不是真实的数据,真实的数据其实只存在CommitLog中,这里存的仅仅是这个Queue所有消息在CommitLog上面的位置,相当于是这个Queue的一个密集索引
- 高级特性
- 事务场景
- 延迟发送
- 消费重试和死信队列
- 事务场景