简单理解RocketMQ---入门

Posted black_Style

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单理解RocketMQ---入门相关的知识,希望对你有一定的参考价值。

简介:

        RocketMQ是阿里巴巴出品的一款低延迟,可靠,可扩展,易于使用的面向消息的中间件,支撑着阿里巴巴集团庞大的消息业务增长。RocketMQ是基于MetaQ的一个开源分支,几乎重写了MetaQ所有的核心组件,可以说是MetaQ的下一代产品。同时也是阿里云的ONS云消息服务的核心组件,每天可处理上千亿条消息,服务于阿里内部上千个应用,顺利通过淘宝,天猫‘双11’等大促考验。

提供的多种功能:

    支持Pub/Sub和P2P消息模型
    在同一个队列中具有可靠的FIFO和严格的通信顺序
    长pull queue模型,也支持push消费方式
    在单个队列中具备堆积上亿条消息的能力
    覆盖多种消息协议,如JMS,MQTT,HTTP2等
    每个消息至少投递一次的Message delivery semantics来保证分布式部署架构高可用
    支持Docker镜像来进行隔离测试和云隔离集群
    提供用于配置,测量和监控的功能丰富的管理界面
    消息全链路追踪
    生产者事务消息机制,使得生产者和本地数据库事务能在一个原子操作里面进行处理
    消息调度交付,类似JMS2规范的延迟支付

 
1,物理部署结构:
 
网络部署的特点:
  •     Name Server(名称服务)是一个几乎无状态节点,可集群部署,节点之间无任何信息同步
  •     Broker部署相对复杂,Broker分为Master和Slave,一个主对应多个从,但是一个从只能对应一个主,主从对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master可以部署多个,每个Broker与Name Server集群中的所有节点建立长连接,定时注册Topic信息到所有Name Server。
  •     Producer与Name Server集群中的其中一个节点(随机选择)简历长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。
  •    Consumer与Name Server集群中的一个节点(随机选择)建立长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master,Slave建立长连接,且定时向Master,Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
2,逻辑部署结构:
    Producer Group:用来表示一个发送消息的应用。一个Producer Group下包含多个Producer实例,可以是多台机器,也可以是一台机器的多个进程,或者一个进程中多个Producer对象。一个Producer Group可以发送多个Topic消息,Producer Group的作用如下:
  •     标识一类Producer
  •     可以通过运维工具查询这个发送消息的应用下有多个Producer实例
  •     发送分布式事务消息时,如果Producer中途意外宕机,Broker会主动回调Producer Group内的任意一台机器来确认事务状态
    Consumer Group:用来表示一个消费消息的应用。一个Consumer Group下包含多个Consumer实例,可以是多台机器,也可以是多个进程,或者是一个进程的多个Consumer对象。一个Group下的多个Consumer以均摊方式消费消息,如果设置为广播方式,那么这个Consumer Group下的每个实例都消费全量数据。需要注意的是,同一个Consumer Group中的Consumer实例必须有相同的topic subscription。可以说,Consumer Group的概念,变相的实现了消息领域点对点和广播通信模式。
 
内容取自:<<分布式系统常用技术及案例分析>>

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

以上是关于简单理解RocketMQ---入门的主要内容,如果未能解决你的问题,请参考以下文章

RocketMQ快速入门

RocketMQ入门到精通— RocketMQ学习入门指南 | RocketMQ服务发现(Name Server)精讲

RocketMQ初入门踩坑记

rocketmq4.x快速入门指南

SpringBoot整合RocketMQ实现入门案例

RocketMQ入门到精通— RocketMQ学习入门指南 | 精讲RocketMQ是什么