dolphinscheduler源码解析-NettyRemotingServer

dolphinscheduler源码解析-NettyRemotingServer

NettyRemotingServer属性

private final Logger logger = LoggerFactory.getLogger(NettyRemotingServer.class);

/**
 * server bootstrap

private final ServerBootstrap serverBootstrap = new ServerBootstrap();

/**
 * encoder
 */
private final NettyEncoder encoder = new NettyEncoder();

/**
 * default executor
 */
private final ExecutorService defaultExecutor = Executors.newFixedThreadPool(Constants.CPUS);

/**
 * boss group
 */
private final EventLoopGroup bossGroup;

/**
 * worker group
 */
private final EventLoopGroup workGroup;

/**
 * server config
 */
private final NettyServerConfig serverConfig;

/**
 * server handler
 */
private final NettyServerHandler serverHandler = new NettyServerHandler(this);

/**
 * started flag
 */
private final AtomicBoolean isStarted = new AtomicBoolean(false);

/**
 * Netty server bind fail message
 */
private static final String NETTY_BIND_FAILURE_MSG = "NettyRemotingServer bind %s fail";

都是一些netty的启动配置,不过NettyServerHandler它把this注册了进来。

MasterServer中对该类的使用为

this.nettyRemotingServer = new NettyRemotingServer(serverConfig);
this.nettyRemotingServer.registerProcessor(CommandType.TASK_EXECUTE_RESPONSE, new TaskResponseProcessor());
this.nettyRemotingServer.registerProcessor(CommandType.TASK_EXECUTE_ACK, new TaskAckProcessor());
this.nettyRemotingServer.registerProcessor(CommandType.TASK_KILL_RESPONSE, new TaskKillResponseProcessor());
this.nettyRemotingServer.start();

可以看出它的注册处理器方法,采用了命令模式,不同的命令对应不同的处理流程。追踪它的registerProcessor方法。

public void registerProcessor(final CommandType commandType, final NettyRequestProcessor processor) {
	this.registerProcessor(commandType, processor, null);
}

再追踪

public void registerProcessor(final CommandType commandType, final NettyRequestProcessor processor, final ExecutorService executor) {
    this.serverHandler.registerProcessor(commandType, processor, executor);
}

这里就可以看出最后实际调用了NettyServerHandler的registerProcessor方法【点击打开】

其他的方法都是一些基本的netty配置等,就不过多介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天心有情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值