zoukankan      html  css  js  c++  java
  • RocketMQ整体结构

    image

    一、角色介绍

    Rocketmq整体包含4个角色

    1. Producer:消息⽣产者和发送者,就是寄件人。
    2. NameServer:路由注册中⼼,管理Broker,就是卫星。
    3. Broker:消息存储服务器,暂存和传输消息,就是邮局。
    4. Consumer:消息消费者和接收者,就是收件人。

    在介绍完以上4个角色以后,还需要重点介绍一下Topic和Message Queue:

    1. Topic:主题,用来区分不同类型的消息
    2. Message Queue:一个Topic可以设置一个或多个Message Queue,相当于Topic的分区,用于并行发送和接收消息。

    二、集群特点

    NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。

    Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。每个Broker与NameServer集群中的所有节点建立长连接,定时注册Topic信息到所有NameServer。

    Producer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。

    Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。

    这里面最核心的是每个Broker与Name Server集群中的所有节点建立长连接这样做好处多多。

    • 这样可以使Name Server之间可以没有任何关联,因为它们绑定的Broker是一致的。
    • 作为Producer或者Consumer可以绑定任何一个Name Server 因为它们都是一样的。

    三、集群模式

    1. 单Master模式
    2. 多Master模式
    3. 多Master多Slave模式(异步)
    4. 多Master多Slave模式(同步)
  • 相关阅读:
    设计模式 设计原则 何为设计
    面向对象 多态
    两个简易的对拍程序
    各类有用的神奇网站
    乘法逆元
    树链剖分
    Markdown的用法
    vimrc 的配置
    luogu【P1144】最短路计数
    【娱乐】收录各种神奇知乎问答
  • 原文地址:https://www.cnblogs.com/xhyouyou/p/12465525.html
Copyright © 2011-2022 走看看