Rocketmq详解

什么是Rocketmq

RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点
1、’能够保证严格的消息顺序
2、提供丰富的消息拉取模式
3、高效的订阅者水平扩展能力
4、实时的消息订阅机制
5、亿级消息堆积能力

二、核心概念
Producer: 消息生成者,负责消息产生,由业务系统负责产生。
Consumer:消息消费者,负责消费消费,由后台业务系统负责异步消费。
Push Consumer:Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦接收到消息,Consumer对象立刻回调Listener接口方法。
Pull Consumer:Consumer的一种,应用通常主动调用Consumer的拉消息方法从Broker拉消息,主动权由应用控制。
Producer Group:生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组。在这里可以不用关心,只要知道有这么一个概念即可。RocketMQ 中的 生产者组只能有一个在用的生产者。分组的作用如下(简单的场景不需要了解这个概念):

标识一类 Producer
可以通过运维工具查询这个发送消息应用下有多个 Producer 实例
发送分布式事务消息时,如果 Producer 中途意外宕机,Broker 会主动回调 Producer Group 内的任意一台机器来确认事务状态。

Consumer Group:一类Consumer的集合名称,这类Consumer通常消费一类消息,且发送逻辑。
Broker:消息中转角色,负责存储消息,转发消息,一般也称为Server。
集群消费:一个Consumer Group中的Consumer实例平均分摊消费消息。例如某个Topic有9条消息,其中一个Consumer Group有3个 实例(可能是3个进程或3台机器),那么每个实例只消费其中的3条消费。
广播消费:一条消息被多个Consumer消息,即使这些 Consumer属于同一个 Consumer Group,消息也会被Consumer Group中的每隔 Consumer都消费一次。
顺序消费:指消息的消费顺序和产生顺序相同,在有些业务逻辑 下 ,必须保证顺序。比如订单的生成、付款、发货,这3个消息必须按顺序处理才行。

NameServer
NameServer 是整个 RocketMQ 的“大脑”,它是 RocketMQ 的服务注册中心,所以 RocketMQ需要先启动 NameServer 再启动 Rocket 中的 Broker。

Broker 在启动时向所有 NameServer 注册(主要是服务器地址等),生产者在发送消息之前先从 NameServer 获取 Broker 服务器地址列表(消费者一 样),然后根据负载均衡算法从列表中选择一台服务器进行消息发送。
NameServer与每台 Broker 服务保持长连接,并间隔 30S 检查 Broker 是否存活,如果检测到 Broker 宕机,则从路由注册表中将其移除。这样就可以实 现 RocketMQ 的高可用。
在这里插入图片描述

以下我们将总结下 Rocket 的整体运转。
1、NameServer 先启动
2、Broker 启动时向 NameServer 注册
3、生产者在发送某个主题的消息之前先从 NamerServer 获取 Broker 服务器地址列表(有可能是集群),然后根据负载均衡算法从列表中选择一台 Broker 进行消息发送。
4、NameServer 与每台 Broker 服务器保持长连接,并间隔 30S 检测 Broker 是否存活,如果检测到 Broker 宕机(使用心跳机制,如果检测超过 120S),则从路由注册表中将其移除。
5、消费者在订阅某个主题的消息之前从 NamerServer 获取 Broker 服务器地址列表(有可能是集群),但是消费者选择从 Broker 中 订阅消息,订阅 规则由 Broker 配置决定。

集群模式

在这里插入图片描述

特性

nameserver
相对来说,n

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值