3.4 BMQ文件结构
3.5 Broker-parition状态机
保证对于任意分片在同一时刻只能在一个Broker上存活
Broker写入过程中可能会导致系统崩溃,为了保证数据的正常运行。
Kafka中的Broker是一个独立的Kafka服务器,它负责存储和处理消息。而Broker中的Controller是一个特殊的Broker,它的主要作用是管理整个Kafka集群的状态和元数据,包括:
1. Leader选举:当某个分区的Leader节点宕机时,Controller会负责选举新的Leader节点。
2. 分区分配:当新增或删除Broker时,Controller会负责重新分配分区,以保证负载均衡。
3. Topic管理:Controller会负责创建、删除和修改Topic的元数据,并将这些元数据同步到整个集群中。
4. Broker状态监控:Controller会监控整个集群中每个Broker的状态,包括存活状态、负载状态等。
总之,Controller是Kafka集群中非常重要的一个角色,它保证了整个集群的稳定性和可靠性。
3.5 Broker-写文件流程
3.6 Proxy
设置时间窗口,在规定时间窗口内没有得到数据则返回,以避免Wait过长时间。
3.7多机房部署
线上高可用服务除了防止单机故障以外,还有要防止机房出现故障。
三个机房的Broke才能组成所有分区的集合,如前三个分片在A机房,中间分片在B机房,剩下分片在C机房等。为了保证分片数据的一致性,每一个分片一次只能在一个机房进行启动,在需要跨机房访问。
3.8 BMQ分区特性
3.9 泳道消息
产品预览环境:测试,上下线