RocketMQ详解(2)——RocketMQ核心概念

RocketMQ详解(2)——RocketMQ核心概念

一. RocketMQ专业术语

  1. Producer

    消息生产者,负责产生消息,一般由业务系统负责产生消息。

  2. Consumer

    消息消费者,负责消费消息,一般由后台系统负责异步消费。

  3. Push Consumer

    Consumer的一种,通常是应用向Consumer注册一个Listener接口,一旦Consumer收到消息,立刻回调Listener接口的方法。

  4. Pull Consumer

    Consumer的一种,通常由应用主动调用Consumer的拉取消息方法吃Broker拉消息,主动权由应用控制。

  5. Producer Group

    一类Producer的集合,同一个Group内的Producer发送同一类消息,且发送逻辑一致。

  6. Consumer Group

    一类Consumer的集合,同一个Group内的Consumer消费同一类消息,且消费逻辑一致。

  7. Broker

    消息中转角色,负责存储、转发消息,一般也成为Server,在JMS规范中成为Provider。

二. RocketMQ的消费方式

  1. 广播消息

    一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group,消息也会被Consumer Group中的每一个Consumer都消费一次。可以认为,在广播消费情况下,Consumer Group的划分无意义。在CORBA Notification规范中,消费方式都属于广播消费。在JMS规范中,相当于Pub/Sub模型。

  2. 集群消费

    一个Consumer Group中的所有Consumer平均分摊消费消息(组内负载均衡),例如某个Topic有9条消息,发往一个Consumer Group,该Consumer Group有3个实例(可能是3个进程,或3台机器),那么每个实例只消费其中的3条消息。CORBA Notification规范中没有此消费方式。在JMS规范中,类似于P2P模型,但是RocketMQ的集群消费功能大于等于JMS的P2P消费。因为集群消费模式下,RocketMQ单个Consumer Group内的消费类似于P2P,但是一个Topic/Queue可以被多个Consumer Group消费。

  3. 顺序消费

    消息消费的顺序要和发送的顺序保持一致。在RocketMQ中,该顺序主要指局部顺序,即一类消费为满足顺序性,必须Producer单线程发送,且发送到同一个队列,这样Consumer就可以按照Producer的发送顺序来消费消息。

  4. 普通顺序消费

    顺序消费的一种,无论正常、异常情况下,都能保证消息的顺序。但是一旦宕机,Broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,导致短暂的消息顺序不一致。如果业务能够容忍在集群异常情况下(如某个Broker宕机或重启)消息出现短暂的乱序,那么使用普通顺序消费比较合适。

  5. 严格顺序消息

    顺序消费的一种,无论正常、异常情况下,都能保证消息的顺序,但是牺牲了分布式的Failover特性,即Broker集群中只要有一个节点不可用,则整个集群都不可用,这大大降低了服务的可用性。如果服务器部署为同步双写模式,此缺陷可通过slave自动切换成master避免,不过仍然可能存在几分钟的服务不可用。目前已知的应用只要数据库的binlog同步强依赖严格顺序消息,其他应用大部分都可以容忍短暂乱序,推荐使用普通顺序消费模式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张申傲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值