zoukankan      html  css  js  c++  java
  • RocketMQ之Broker

    一、Broker 介绍

    Broker 是 RocketMQ 的核心,大部分 "重量级" 工作都是由 Broker 完成的,如:
        * 接收 Producer 发送的消息
        * 处理 Consumer的消费消息请求
        * 消息的持久化存储
        * 消息的 HA 机制
        * 服务器过滤功能
        ......
    

    二、消息的存储结构

    RocketMQ 的消息存储由 ConsumeQueueCommitLog 配合完成。

    2.1 ConsumeQueue

    * ConsumeQueue 是消息的逻辑队列,类似数据库的索引文件,存储着指向物理存储的地址。每个 Topic 下的每个 MessageQueue 都有一个对应的 ConsumeQueue 文件。 
    
    * 文件所在路径: ${$storeRoot}consumequeue${topicName}${queueId}${fileName}。
    

    2.2 CommitLog

    * CommitLog 是物理存储文件,每个 Broker 上的 CommitLog 被本机器所有的 ConsumeQueue 共享。
        
    * 文件所在路径:${user.homt}store${commitlog}${fileName}。    
    

    2.3 存储顺序

    RocketMQ 通过一些机制来保证,尽量向 CommitLog 中顺序写入,但是可以随机读取。
    

    三、高可用机制

    Broker 集群通过 MasterSlave 的配合达到高可用性,通过在 Broker 的配置文件中设置参数 brokerId 来区分是 Master 还是 Slave

    * brokerId 等于 0 表示这个 Broker 是 Master;
    * brokerId 大于 0 表示这个 Broker 是 Slave;
    

    Master 支持读和写操作,Slave 只支持读操作。

    四、同步刷盘与异步刷盘

    4.1 什么叫做刷盘?

    * RocketMQ 消息存储方式为内存+磁盘存储;
    * 刷盘是指将内存的数据写入到磁盘中的操作;
    * 刷盘分为同步刷盘和异步刷盘    
    

    4.2 异步刷盘

    当执行消息写入操作时,当消息写入到内存中时,就返回写成功状态。当内存中的消息量积累到一定量时,统一触发写磁盘动作。
    

    4.3 同步刷盘

    当执行消息写入操作时,同步写入内存和磁盘中后才返回写成功状态。
    

    4.4 刷盘方式配置

    通过 Broker配置文件中的 fulshDiskType 参数配置:
        * SYNC_FLUSH:同步刷盘
        * ASYNC_FLUSH:异步刷盘    
    

    建议使用 异步刷盘 形式。

    五、同步复制和异步复制

    5.1 什么叫做复制?

    Broker 集群有 Master 和 Slave 两种角色,消息需要从 Master 复制到 Slave 上; 
    

    5.2 异步复制

    当执行消息写入操作时,只要 Master写成功即可反馈给客户端成功状态
    

    5.3 同步复制

    当执行消息写入操作时, Master和 Slave 均写成功才反馈给客户端成功状态
    

    5.4 复制方式配置

    通过 Broker配置文件中的 brokerRole 参数配置:
        * ASYNC_MASTER:异步复制
        * SYNC_MASTER:同步复制
        * SLAVE
    

    建议使用 SYNC_MASTER 形式。

  • 相关阅读:
    getGuid()
    DELPHI7在WIN8和WIN10下安装和运行
    oracle存储过程返回数据集结果
    咏南多层开发框架支持最新的DELPHI 10 SEATTLE
    咏南中间件支持手机客户端
    最精简的IOCP封装
    完成端口iocp——在螺丝壳里做道场
    异步选择模式中使用完成端口做它的消息队列
    阿里百川IMSDK--自定义群聊界面
    Customizing Navigation Bar and Status Bar
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12586133.html
Copyright © 2011-2022 走看看