概要
消息队列成为了各种应用的重要基础设施,它恰好处于灵活和定制的中间状态,使得mq可以衍生出多个场景的用途。但是,开源的语言通用的消息中间件并不多,rocketmq基于Java,是非常成熟并值得学习的开源项目。
特性
3.0去除zookeeper
不依赖zookeeper是大势所趋,rocketmq自己管理元数据。
4.0新增raft多副本
使用raft有利有弊,需要了解细节。
5.0:为了云原生
云原生的一个前提是组件尽可能无状态,不用的资源进行分离,可以做到独立拓展。
无状态proxy
protobuf统一客户端
过去,客户端需要做一些状态逻辑,这就导致每种客户端都要实现这个逻辑,为了支持更多语言客户端,需要把状态逻辑转移到服务端(pop消费),并且使用通用的序列化协议protobuf。
存算分离:namesrv和broker
存算分离是云原生存储的趋势,但是如何兼顾传统运维的存算一体,以及存算分离适不适合消息队列场景,还需要讨论。
rocketmq-streams:流+mq
流计算是大趋势,如何更好地配合流计算,是mq的重要实践领域。
rocketmq-eventbridge: 事件驱动
虽然事件驱动架构需要重写代码,但可能是未来的云应用趋势,通过开源尽早进行了布局。
边缘计算:微消息队列 MQTT
适应边缘计算环境,云边协同。