官方参考文档
RocketMQ主要由 Producer、Broker、Consumer 三部分组成。
RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。
从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。
RocketMQ 支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。
集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊消息。
广播消费模式下,相同Consumer Group的每个Consumer实例都接收全量的消息。
普通顺序消费模式下,消费者通过同一个消费队列收到的消息是有顺序的,不同消息队列收到的消息则可能是无顺序的。
严格顺序消息模式下,消费者收到的所有消息均是有顺序的。
RocketMQ的消费者可以根据Tag进行消息过滤,也支持自定义属性过滤。消息过滤目前是在Broker端实现的,优点是减少了对于Consumer无用消息的网络传输,缺点是增加了Broker的负担、而且实现相对复杂。
事务消息
RocketMQ的事务消息提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致。
消息顺序
顺序消息分为全局顺序消息与分区顺序消息。
全局顺序是指某个Topic下的所有消息都要保证顺序;
部分顺序消息只要保证每一组消息被顺序消费即可。
消息可靠性
RocketMQ从3.0版本开始支持同步双写
回溯消费
RocketMQ支持按照时间回溯消费,时间维度精确到毫秒。