Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Apache RocketMQ
Rocketmq
提交
80aac138
R
Rocketmq
项目概览
Apache RocketMQ
/
Rocketmq
上一次同步 大约 3 年
通知
267
Star
16139
Fork
68
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rocketmq
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
80aac138
编写于
5月 10, 2017
作者:
L
Li Zhanhui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ROCKETMQ-191] Fix socket options
上级
f5a2ee0a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
13 addition
and
5 deletion
+13
-5
remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
...g/apache/rocketmq/remoting/netty/NettyRemotingServer.java
+13
-5
未找到文件。
remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
浏览文件 @
80aac138
...
...
@@ -26,7 +26,9 @@ import io.netty.channel.ChannelInitializer;
import
io.netty.channel.ChannelOption
;
import
io.netty.channel.EventLoopGroup
;
import
io.netty.channel.SimpleChannelInboundHandler
;
import
io.netty.channel.epoll.Epoll
;
import
io.netty.channel.epoll.EpollEventLoopGroup
;
import
io.netty.channel.epoll.EpollServerSocketChannel
;
import
io.netty.channel.nio.NioEventLoopGroup
;
import
io.netty.channel.socket.SocketChannel
;
import
io.netty.channel.socket.nio.NioServerSocketChannel
;
...
...
@@ -105,8 +107,7 @@ public class NettyRemotingServer extends NettyRemotingAbstract implements Remoti
}
});
if
(
RemotingUtil
.
isLinuxPlatform
()
//
&&
nettyServerConfig
.
isUseEpollNativeSelector
())
{
if
(
useEpoll
())
{
this
.
eventLoopGroupSelector
=
new
EpollEventLoopGroup
(
nettyServerConfig
.
getServerSelectorThreads
(),
new
ThreadFactory
()
{
private
AtomicInteger
threadIndex
=
new
AtomicInteger
(
0
);
private
int
threadTotal
=
nettyServerConfig
.
getServerSelectorThreads
();
...
...
@@ -129,6 +130,12 @@ public class NettyRemotingServer extends NettyRemotingAbstract implements Remoti
}
}
private
boolean
useEpoll
()
{
return
RemotingUtil
.
isLinuxPlatform
()
&&
nettyServerConfig
.
isUseEpollNativeSelector
()
&&
Epoll
.
isAvailable
();
}
@Override
public
void
start
()
{
this
.
defaultEventExecutorGroup
=
new
DefaultEventExecutorGroup
(
...
...
@@ -144,13 +151,14 @@ public class NettyRemotingServer extends NettyRemotingAbstract implements Remoti
});
ServerBootstrap
childHandler
=
this
.
serverBootstrap
.
group
(
this
.
eventLoopGroupBoss
,
this
.
eventLoopGroupSelector
).
channel
(
NioServerSocketChannel
.
class
)
this
.
serverBootstrap
.
group
(
this
.
eventLoopGroupBoss
,
this
.
eventLoopGroupSelector
)
.
channel
(
useEpoll
()
?
EpollServerSocketChannel
.
class
:
NioServerSocketChannel
.
class
)
.
option
(
ChannelOption
.
SO_BACKLOG
,
1024
)
.
option
(
ChannelOption
.
SO_REUSEADDR
,
true
)
.
option
(
ChannelOption
.
SO_KEEPALIVE
,
false
)
.
childOption
(
ChannelOption
.
TCP_NODELAY
,
true
)
.
o
ption
(
ChannelOption
.
SO_SNDBUF
,
nettyServerConfig
.
getServerSocketSndBufSize
())
.
o
ption
(
ChannelOption
.
SO_RCVBUF
,
nettyServerConfig
.
getServerSocketRcvBufSize
())
.
childO
ption
(
ChannelOption
.
SO_SNDBUF
,
nettyServerConfig
.
getServerSocketSndBufSize
())
.
childO
ption
(
ChannelOption
.
SO_RCVBUF
,
nettyServerConfig
.
getServerSocketRcvBufSize
())
.
localAddress
(
new
InetSocketAddress
(
this
.
nettyServerConfig
.
getListenPort
()))
.
childHandler
(
new
ChannelInitializer
<
SocketChannel
>()
{
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录