消息队列

111 阅读2分钟

Consumer Rebalance机制:

寻找哪个Broker负载最低,consumer发送find coordinator Request,达到一致条件之后。

Consumer向Group Coordinator发送JoinGroupRequest。

协调者选择ConsumerGroup 的第一台机器为消费者leader。

Consumer Leader 向协调者发送分配方案,协调者告诉每个消费者分配方案

消费者leaer在一定间隔内向协调者发送心跳,如果没有发送心跳,协调者重新开始选举。

刚刚总共讲了哪一些可以帮助Kafka提高吞吐或者稳定性的功能?

Producer: 批量发送、数据压缩 Broker: 顺序写,消息索引,零拷贝 Consumer: Rebalance

2.12 Kafka重启操作

image.png 在两副本在并发重启两台机器,那么两个分片同时处于不可用状态,造成整个Topic的可用性降低。

2.13 Kafka替换、扩容、缩容

image.png 扩容后空白机器新的副本需要从零开始追赶数据。 只要有节点变动,会带来数据复制的时间成本问题。 Kafka没有自己的缓存,只能依赖Page Cache. 如何Controller选取分片分配方案,coordinator 消费者group balance的协调者。

3.1 BMQ简介

兼容 Kafka 协议,存算分离(在Broker提取的数据由另一个分布式存储或者文件系统进行存储),云原生消息队列

3.2 运维操作对比

具体操作 重启 替换 扩容 缩容 Kafka 需要数据复制,分钟级重启 需要数据复制,分钟级替换.甚至天级别 需要数据复制,分钟级扩容,甚至天级别 需要数据复制,分钟级缩容,甚至天级别 BMQ 重启后可直接对外服务,秒级完成 替换后可直接对外服务,秒级完成 扩容后可直接对外服务,秒级完成 缩容后可直接对外服务秒级完成