zoukankan      html  css  js  c++  java
  • RocketMQ 入门

    一、rocketMQ是什么

    rocketmq是一款低延迟、高可靠、可伸缩、已使用的消息中间件。具有以下特性:

    1、支持发布/订阅、点对点(p2p)消息模型

    2、同一个队列中支持先进先出(FIFO)和严格的顺序传递

    3、支持拉(pull)和推(push)两种消息模式

    4、单一队列百万消息的堆积能力

    5、支持多种消息协议,比如: JMS 、MQTT

    6、分布式高可用的不是架构,满足至少一次消息传递语义

    7、提供docker 镜像用于隔离测试和云集群部署

    8、提供配置、指标和监控功能丰富的Dashboard

    二、专业术语

    1、producer

      生产者、作用是将消息发送到MQ

    2、producer group 

      生产者组,多个发送同一类消息的生成者简称为一个生产者组

    3、consumer

      消费者、消费MQ上的消息

    4、consumer group 

      消费者组,消费同一类型消息的多个consumer简称一个消费者组

    5、topic

      是一种消息的逻辑分类,比如:订单相关的消息存储在一个topic中、库存相关的消息存储在同一个topic中

    6、message

      是消息的载体,一个message必须指定topic,相当于寄信地址。message还可以设置一个tag 比便于消费者可以基于tag进行过滤消息

    7、tag

      标签,可以被认为是对topic的进一步细化,一般在相同业务模块中通过引入标签来标记不同的用途的消息

    8、broker

       是rocketMQ的系统主要角色。broker接受生成者的消息,存储以及为消费者拉取消息的请求做好准备

    三、rocketMQ 架构

    以上可以看出有4个集群,分别是 nameserver集群、broker集群、producer集群、consumer集群

    1、nameserver集群:提供了轻量级的服务和路由,每个nameserver记录完整的路由信息,提供读写服务并且支持快速扩展。

    2、broker集群:通过提供轻量级的topic和Queue机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制

    3、producer:生产者,产生消息的实例,拥有相同的producer Group 和produer 组成一个集群

    4、consumer:消费者,接受消息的实例,拥有相同的consumerGroup 和consumer组成一个集群

    简单说明一下图中箭头含义,从 Broker 开始,Broker Master1 和 Broker Slave1 是主从结构,它们之间会进行数据同步,即 Date Sync。同时每个 Broker 与
    NameServer 集群中的所有节
    点建立长连接,定时注册 Topic 信息到所有 NameServer 中。

    Producer 与 NameServer 集群中的其中一个节点(随机选择)建立长连接,定期从 NameServer 获取 Topic 路由信息,并向提供 Topic 服务的 Broker Master 建立长连接,

    且定时向 Broker 发送心跳。Producer 只能将消息发送到 Broker master,但是 Consumer 则不一样,它同时和提供 Topic 服务的 Master 和 Slave
    建立长连接,既可以从 Broker Master 订阅消息,也可以从 Broker Slave 订阅消息。



  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/lxn0216/p/9523467.html
Copyright © 2011-2022 走看看