内容发布更新时间 : 2024/12/24 10:58:56星期一 下面是文章的全部内容请认真阅读。
RocketMQ简介
RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:
? ? ? ? ? ?
支持严格的消息顺序
支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性
同时支持Push与Pull方式消费消息 历经多次天猫双十一海量消息考验
RocketMQ分为Broker、Namesrv两个角色,为Producer、Consumer提供了基础的API库;
Broker对外提供消息存储服务,所有的消息都是落地到Broker所在的本机磁盘空间上。
消息的存储分为两部分:索引与消息内容; 部署:
Broker支持主/从模式的集群模式(个人定制) Namesrv可集群部署,但集群间不同步数据
消息模式:
广播消费
一条消息被多个 Consumer 消费,即使这些 Consumer 属于同一个 Consumer Group,消息也会被 Consumer Group 中的每个 Consumer 都消费一次,广播消费中的 Consumer Group 概念可以认为在消息划分方面无意义。
集群消费
一个 Consumer Group 中的 Consumer 实例平均分摊消费消息。
Consumer Group
用来表示一个消费消息应用,一个 Consumer Group 下包含多个 Consumer 实例,可以是多台机器,也可
以是多个进程,或者是一个进程的多个 Consumer 对象。一个 Consumer Group 下的多个 Consumer 以均摊 方式消费消息,如果设置为广播方式,那么这个 Consumer Group 下的每个实例都消费全量数据。
Producer Group
用来表示一个发送消息应用,一个 Producer Group 下包含多个 Producer 实例,可以是多台机器,也可以
是一台机器的多个进程,或者一个进程的多个 Producer 对象。一个 Producer Group
可以发送多个 Topic 消息,Producer Group 作用如下: 1. 标识一类 Producer
2. 可以通过运维工具查询这个发送消息应用下有多个 Producer 实例
3. 发送分布式事务消息时,如果 Producer 中途意外宕机,Broker 会主动回调 Producer Group 内的任意一台机器来确认事务状态。