- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试迁移具有以下特征的现有 NIO Server 代码库- 在选择器的控制下执行连接接受的单线程- 执行 Socket READ/WRITE 的多个线程(一个线程:一个选择器:一个已接受连接的 SocketChannel)
我想迁移到一种模型,其中单个读/写线程可以有一个选择器,并且多个接受的 SocketChannels 可以注册和取消注册。这样单个线程就可以复用多个SocketChannel进行IO。
据我了解,该模型将直接映射到 Netty 的情况,其中有一个 boss 线程、可配置的工作线程数以及每个工作线程有多个连接。 ExecutionHandler 是正交的,所以我现在不考虑它。
具体问题:我是否正在重新发明“Netty”轮子,或者对于预计对延迟敏感的服务器,上述方法有什么不同,其中连接可能高达 5000 个,二进制协议(protocol)消息交换率预计达到 60-70K 消息/秒?
据我了解,所提到的数字不会单独受到上述设计选择的影响,还会受到其他因素的影响。但设计选择可能会产生更大的影响 - 至少我是这么认为
提前致谢
最佳答案
我认为你正在重新发明。 Netty 正是这样做的,甚至更多。但由于 Netty 现在已经很好地模块化了,如果您不想要其余的功能或“包袱”,您甚至可以选择 Netty 的各个 Maven 子模块而不是整个模块。
从头开始编写的基本问题是,您可能会遇到大量 netty 已经解决的问题、平台问题、jdk 解决方法等等。
郑重声明,在我使用 4 年的 centrino 处理器的笔记本电脑上进行测试时,我能够轻松获得我用 netty 编写的服务器的上述消息速率(实际上更多),但客户端数量较少(100 个)。
也许您应该从 netty 示例模块中获取一个示例,编写您的 5000 连接客户端,并在走这条路之前测试延迟是否适合您。只需几个小时即可完成此操作。
关于java - 多 react 器设计 - 我是否试图重新发明 Netty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349030/
我是一名优秀的程序员,十分优秀!