首页 > 编程语言 >broker启动过程源码分析

broker启动过程源码分析

时间:2023-03-30 14:04:48浏览次数:26  
标签:初始化 启动 broker 源码 线程 组件 2.16

1 broker源码入口

  

2 创建broker控制器

  2.1 设置netty发送和接收buf大小,默认为128k

  

  2.2 加载命令行的参数信息

  

  2.3 生成broker配置对象

  

  2.4 生成netty配置对象,包括server和client的,broker既作为client和nameServer进行通信,也作为server和业务程序进行通信

  

  2.5 绑定监听端口10911

  

  2.6 生成信息存储组件配置对象

  

  2.7 如果是从节点,设置最大内存消息访问比例为30

  

  2.8 加载启动命令 -c 执行的配置信息

  

  2.9 校验配置的nameServer格式

  2.10 校验brokerId,主节点默认设置为0,从节点,id必须 > 0

  

  2.11 是否启用dledger主从切换,默认false,如果启动设置brokerId = -1

  

  2.12 设置ha端口8889

  

  2.13 打印配置信息

  

  2.14 生成broker控制器,包括一大堆rocketmq的组件

  

  2.15 合并所有的配置信息

  

  2.16 初始化broker控制器

  

    2.16.1 从文件中加载topic信息

  

    2.16.2 加载消息偏移量信息

  

    2.16.3 加载订阅情况

   

    2.16.4 加载消费过滤器信息

   

    2.16.5 初始化消息存储组件

    2.16.6 初始化消息统计组件

  

    2.16.7 加载消息存储组件

  

    2.16.8 初始化netty配置

  

    2.16.9 初始化发送消息的线程池

  

    2.16.10 初始化拉取消息的线程池

  

    2.16.11 初始化处理回复消息的线程池

  

    2.16.12 初始化查询消息的线程池

  

    2.16.13 初始化管理客户端的线程池

  

    2.16.14 初始化心跳线程池

  

    2.16.15 初始化事务线程池

  

    2.16.16 初始化消费者管理线程池

  

    2.16.17 注册处理器

  

    2.16.18 定时计算前一天的消息总量,每24小时执行一次

  

    2.16.19 每5s持久化一次消费水位

  

    2.16.20 每10s持久化一次消费者过滤器

  

    2.16.21 每3m执行一次broker保护逻辑,如果消费进度大于执行的阈值,就剔除消费组

  

    2.16.22 定时打印mq水位信息

  

    2.16.23 定时打印剩余的偏移量
    2.16.24 更新nameServer配置

  

    2.16.25 自动主从切换相关的逻辑

  

    2.16.26 初始化事务相关的组件

  

  2.17 设置关闭时的回调函数

  

3 启动broker控制器

  

  3.1 启动消息存储组件

  

  3.2 启动netty server

  

  3.3 启动fast netty server

  

  3.4 启动文件监听服务

  

  3.5 启动netty client

  

  3.6 启动消息保持组件

  

  3.7 启动client状态检查服务

  

  3.8 启动过滤服务组件

  

  3.9 主从自动切换组件

  

  3.10 broker注册逻辑,向每一个nameServer都注册一遍

  3.11 启动统计管理器

  

  3.12 启动快速失败组件

  

标签:初始化,启动,broker,源码,线程,组件,2.16
From: https://www.cnblogs.com/ming00321/p/17269623.html

相关文章

  • 机器视觉框架源码 视觉检测、AOI视觉检测、机械手定位、点胶机
    机器视觉框架源码到手vs2019可以直接编译、视觉检测、AOI视觉检测、机械手定位、点胶机、插件机、激光切割机、视觉螺丝机、视觉贴合机、激光焊接机、视觉裁板机……,C#......
  • ASP.NET Core - 选项系统之源码介绍
    .NETCore选项系统的主要实现在Microsoft.Extensions.Options和Microsoft.Extensions.Options.ConfigurationExtensions两个Nuget包。对于一个框架的源码进行解读,我......
  • 多线程源码_三菱plc+卡+串口上位机
    多线程源码_三菱plc+卡+串口上位机1,采用C#编程。2,上位机采用RS232串口通信链接plc。3,PLC为三菱。4,研华采集卡,采集压装电压。5,曲线判据自定义。6,每天作业......
  • Qt源码阅读(三) 对象树管理
    对象树管理个人经验总结,如有错误或遗漏,欢迎各位大佬指正......
  • Zookeep Leader选举源码
    Leader选举的核心底层原理可以很简单地概述为:核心参数是logicClock逻辑时钟、epoch、事务次数、myid,核心流程为:先对比logicClock,再对比epoch,其次对比事务次数,最后对......
  • TIdHTTPWebBrokerBridge替换成mormot底层
    目前使用案例是git开源项目horse改动思路大概为http请求被WebBrokerDispatch函数转发到了WebModule中进行后续处理。替换如下单元源码即可将horse项目的indy底层改成morm......
  • ubuntu 18 源码安装nginx
    linux搭建nginx正向代理,添加  第三方模块ngx_http_proxy_connect_moduleapt-getinstallbuild-essentialapt-getinstalllibtoolsudoapt-getupdatesudoapt......
  • 源码分析CHANGE REPLICATION SOURCE TO
    从MySQL8.0.23版本开始,CHANGEMASTERTO开始被替换为CHANGEREPLICATIONSOURCETO,下面使用MySQL8.0.32的代码分析语句的具体执行流程。从语句的入口函数mysql_execute_......
  • VM虚拟机安装centos7.9并docker启动showdoc
    一、准备工作安装VMwareworkstations16版本,这个不做过多的介绍下载centos64位dvd版的centos7.9的镜像文件创建虚拟机,此过程也不做过多的介绍,设置root密码的时候千万要......
  • 低压无感BLDC方波控制,全部源码,方便调试移植
    低压无感BLDC方波控制,全部源码,方便调试移植1.通用性极高,图片中的电机,一套参数即可启动。2.ADC方案3.电转速最高12w4.电感法和普通三段式5.按键启动和调速6.开环,速......