• RocketMQ介绍


    一、RocketMQ 介绍

    • RocketMQ 是一款分布式、队列模型的消息中间件,由阿里巴巴研发。
    • 底层采用 Netty NIOl 框架实现数据通信。
    • 3.X 版本弃用 Zookeeper,内部使用更轻量级的 NameServer 进行网络路由,提供了服务性能,并支持消息失败重试机制。
    • 支持集群模式、消费者负载均衡、水平扩展能力,支持广播模式。
    • 采用零拷贝原理,顺序写盘、支持亿级消息堆积能力。
    • 提供丰富的消息机制,比如顺序消息、事务消息。

    二、使用场景

    • 应用解耦

    • 流量削峰

    • 消息分发

    • 最终一致性

    • 动态扩容

    三、架构

    • Producer
    * 消息生产者,负责产生消息,一般由业务系统负责产生消息。   
    
    • 3.2 Consumer
    * 消息消费者,负责消费消息,一般是后台系统负责异步消费。
    
    • NameServer
    * 无状态节点,用来保存活跃的 broker 列表,和 topic 列表。
    * 可集群部署,节点之间无任何信息同步,通过 Broker与每个 NameServer 连接,可以保证信息同步性。
    
    • Broke
    * 消息中转角色,负责存储消息,转发消息。
    * 拥有 Master、slave(主备)的概念,主备有同步复制、异步双写功能来保持数据同步 
    * 标识:Master的 BrokerId 为 0 ,Slave 的 BrokerId 非0。  
    * 部署模式:
    	* 单 Master 无 Slave(脆弱)
    	* 单 Master 多 Slave(单点故障就瘫,开源版无主备切换功能)
    	* 多 Master 无 Slave(无单点故障,线上生产常用模式)
    	* 多 Master 多 Slave(无单点故障)
    
    • topic
    消息的逻辑管理单位。
    

    四、工作流程

  • 相关阅读:
    控制流测试与条件测试
    12306的“短信公众号”到底是个啥?
    ISTQB名词辨析
    ISTQB TA
    启动Chrome时自动开启开发者模式
    LoadRunner Community Edition 12.60 无法获取Community License
    用言的活用声调变化规则
    ISTQB TTA大纲中提到的参考书目
    Java调用方法参数究竟是传值还是传址?
    Java中的Lambda表达式简介及应用
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12536653.html
Copyright © 2020-2023  润新知