RocketMq源码解析(六)
目录
这一期还是一些主要的配置文件,知道这些文件才能方便后续分析架构时知道整个系统设计的目的,主要分析都已在代码块
Netty网络配置
BrokerController
/**
* 1 Netty服务配置
*
*/
private final NettyServerConfig nettyServerConfig;
private final NettyClientConfig nettyClientConfig;
NettyServerConfig
public class NettyServerConfig implements Cloneable {
/**
* 1 监听端口
* 2 Netty业务线程池线程个数
* 3 Netty服务异步回调线程池线程数量
* 4 Netty Selector线程个数
* 5 控制单向的信号量
* 6 控制异步的信号量
* 7 服务空闲心跳检测 单位 秒
* 8 Netty系统中 发送缓冲区的大小 65535 byte == 64 m
* 9 Netty系统中 接受缓冲区的大小 65535 byte == 64 m
* 10 是否开启缓存
* 11 是否启用E_poll IO模型。Linux环境建议开启
*/
private int listenePort=8888;
private int serverWorkerThread=8;
private int serverCallbackExecutorThreads=0;
private int serverSelectorThreads=3;
private int serverOneWaySemaphoreValue=256;
private int serverAsyncSemaphoreValue = 64;
private int serverChannelMaxIdleTimeSeconds = 120;
private int serverSocketSndBufSzie=NettySystemConfig.socketSndbufSize;
private int serverSocketRcvBufSize = NettySystemConfig.socketRcvbufSize;
private boolean serverPooledByteBufAllocatorEnable = true;
private boolean useEpollNativeSelector = false;
NettyClientConfig
public class NettyClientConfig {
/**
* 1 客户端工作的线程个数
* 2 客户端异步回调线程数 默认为处理器的核数
* 3 客户端单步信号量的值默认为 65535 64M
* 4 客户端异步调用信号量的值 默认 65536 64M
* 5 超时时间 单位毫秒
* 6 连接不在响应时间 1分钟
*/
private int clientWorkerThreads=4;
private int clientCallbackExecutorThreads= Runtime.getRuntime().availableProcessors();
private int clientOneWaySemaphoreValue=NettySystemConfig.CLIENT_ONEWAY_SEMAPHORE_VALUE;
private int clientAsyncSemaphoreValue = NettySystemConfig.CLIENT_ASYNC_SEMAPHORE_VALUE;
private int connectTimeoutMillis