前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RocketMQ详解(2)——RocketMQ核心概念

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

作者头像
张申傲
发布2020-09-03 10:45:59
1.3K0
发布2020-09-03 10:45:59
举报
文章被收录于专栏:漫漫架构路漫漫架构路

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同步强依赖严格顺序消息,其他应用大部分都可以容忍短暂乱序,推荐使用普通顺序消费模式。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RocketMQ详解(2)——RocketMQ核心概念
    • 一. RocketMQ专业术语
      • 二. RocketMQ的消费方式
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档