云原生消息引擎 BMQ 是火山引擎自研,100% 兼容 Apache Kafka 协议,基于云原生的全托管、高吞吐、低时延、高可用、高可扩展性、高稳定性的分布式消息引擎服务,支持灵活动态扩缩容和流批一体计算,提供企业级大数据量级的实时流数据处理能力,帮助您构建数据处理的“中枢神经系统”,广泛应用于日志收集、数据聚合、离线数据分析等业务场景。
产品架构
云原生消息引擎 BMQ 采用发布-订阅设计模式。Producer 发布消息到 云原生消息引擎 BMQ 的 Topic,Consumer 订阅该 Topic,处理相关的消息。
- Producer
Producer 是发送消息的客户端,Producer 在获取集群和 Topic 信息后,将本地的消息批量发送到 Proxy 节点。 - Proxy
云原生消息引擎 BMQ 中,Proxy 接收到 Producer 请求后,将请求中的所有 Topic-Partition 做聚合,然后转发请求中对应的 Topic-Partition 数据。处理完成返回相应的结果给 Producer。 - Broker
云原生消息引擎 BMQ 中,Broker 接收到 Proxy 转发的 Producer 数据后,会按照 Topic-Partition 插入到对应的队列中。 - Consumer Group
Consumer 是接收和消费消息的客户端,每个Consumer 会规划到一个逻辑的 Consumer Group 中。每个消息只会被 Consumer Group 中的一个 Consumer 消费。Consumer Group 获取集群和 Topic 信息后,通过指定 Topic-Partition 订阅或者 Coordinator 协调的方式订阅后,读取消息进行消费。 - Coordinator
云原生消息引擎 BMQ 中,Coordinator 通过状态机完成整个建立平衡 Consumer Group 的过程。 - Controller
云原生消息引擎 BMQ 中,Controller 根据统计信息来平衡 Partition。除此之外,还承担一些集群管理的任务,包括新建 Topic、扩容 Partition 等。 - CloudFS
CloudFS 用于存储数据面消息,云原生消息引擎 BMQ 用于存储控制面消息。
产品优势
- 100% 兼容 Kafka 协议,零成本迁移
- 全托管,高吞吐低延迟,开箱即用免运维
- 存算分离,高资源利用率,存储计算无限扩容
- 消息可观测,生产/消费吞吐与堆积及时掌控
- 安全可控,多租户多项目精细化权限管理