我认为netty是我所知道的最好的java网络框架,在阅读并尝试一些示例后我有疑问:
1。使用netty 4.0为不同协议创建多端口网络服务器的最佳方法是什么?
每个服务器创建:
EventLoopGroup bossGroup = new NioEventLoopGroup(); //(1)
EventLoopGroup workerGroup = new NioEventLoopGroup();
ServerBootstrap b = new ServerBootstrap(); //(2)
每个服务器在线程内运行
是正确的方式吗?
2。 Websocket服务器
如何保护Websocket Server for Cross origin案例?我没有任何关于它的参考
你的帮助非常感谢,
此致
BC,
答案 0 :(得分:2)
正如Norman所说,重要的是你需要共享事件循环组,这样你就不会创建太多的线程。只要您共享事件循环组,就可以根据需要创建任意数量的ServerBootstrap
:
EventLoopGroup bossGroup = new NioEventLoopGroup(numBossThreads);
EventLoopGroup workerGroup = new NioEventLoopGroup(numWorkerThreads);
ServerBootstrap sb1 = new ServerBootstrap();
sb1.group(bossGroup, workerGroup);
...
sb1.bind();
ServerBootstrap sb2 = new ServerBootstrap();
sb2.group(bossGroup, workerGroup);
...
sb2.bind();
ServerBootstrap sb3 = new ServerBootstrap();
sb3.group(bossGroup, workerGroup);
...
sb3.bind();
bossGroup
用于接受传入连接,workerGroup
用于处理bossGroup
接受的连接。请进行一些性能测试并指定最佳numBossThreads
和numWorkerThreads
。
答案 1 :(得分:0)
我会在ServerBootstrap之间共享NioEventLoopGroup以共享相同的线程。