rocketmq-nameserver-启动流程-定时任务-分析

nameserver代码结构

代码非常少。我用的版本是4.9.8,namesrv模块,只有6个文件。
在这里插入图片描述
代码很简练。功能也就意味着比较少。

启动线程图

使用arthas分析
在这里插入图片描述

  • FileWatchService是用于检测ssl文件变更的。不太懂,后续再了解
  • AsyncAppender-Worker-RocketmqNamesrvAppender logback的一个线程
  • NSScheduledThread1 定时任务线程。总共两个任务。后续有分析
  • NettyNIOBoss_1 Netty的boss线程池,线程模型是reactor模型,boss线程负责远程client的连接请求
  • NettyEventExecutor netty的一个线程,待分析
  • RemotingExecutorThread_X 提供给netty处理业务的线程池里的线程。用于接受product、consumer、broker的RPC请求

namesrv启动流程图

在这里插入图片描述
这张图,描述了启动的执行流程和定时任务。
启动流程比较简单,不做详细分析了。

后续DefaultRequestProcessor、RouteInfoManager分析

org.apache.rocketmq.namesrv.processor.DefaultRequestProcessor#processRequest
product、consumer、broker的rpc请求,都会进入该方法。后续一一分析

RouteInfoManager内存中,有几个成员变量map,管理topic、broker、心跳等。后续分析

public RemotingCommand processRequest(ChannelHandlerContext ctx,
    RemotingCommand request) throws RemotingCommandException {
   

    if (ctx != null) {
   
        log.debug("receive request, {} {} {}",
            request.getCode(),
            RemotingHelper.parseChannelRemoteAddr(ctx.channel()),
            request);
    }


    switch (request.getCode(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值