使用多个线程处理单个连接

2024-01-07

我有 3 个异步服务器和客户端,它们像一条链一样相互连接。

一个请求会经过 3 个系统,例如

=> System 1 => System 2 => System 3 =>

和回应

=> System 3 => System 2 => System 1 =>

我在每个系统中都有一个逻辑,以便将响应与正确的请求结合起来。通过这种逻辑,我设法以不同的顺序处理响应和请求。

今天,我的系统之间只有一个连接。我注意到只使用了一个线程,并且性能不好......:(

是否有任何配置可以强制每个连接使用多个线程? 这是解决这个问题的正确方法吗?或者我必须在每个系统之间有一个连接池?netty 有某种这种池还是我必须自己实现它?

我使用的是netty 5。

多谢。


See the Netty 维基百科 http://netty.io/wiki/new-and-noteworthy-in-4.0.html#wiki-h2-34对线程模型有一个很好的一般描述。总之,Netty 4.0+ 不会在通道处理操作中引入并发性。查看大多数网络示例 https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example您会注意到因此缺乏同步。同时对通道进行操作会给框架和与框架交互的接口带来更多的复杂性。

我认为问题是您的用例是否支持在多个渠道之间拆分?这取决于很多因素,但如果您的算法和数据支持并行化,那么您可能会看到整体吞吐量的提高。

Netty确实提供了一个频道组 https://github.com/netty/netty/blob/master/transport/src/main/java/io/netty/channel/group/ChannelGroup.java但我不确定这是否适合您的用例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多个线程处理单个连接 的相关文章

  • 写入操作的 Netty ChannelFuture 何时“完成”?

    在 Netty 4 中 确切地说 什么时候ChannelFuture对于写操作 假设NioSocketChannel 变得 完成 Netty 是否等待ACK包 中的输入和输出处理程序之间是否存在相互依赖关系 ChannelPipeline将
  • netty源码:(28)ChannelPromise

    ChannelPromise是ChannelFuture的子接口 它是可写入的 其父接口Promise定义如下 ChannelPromise有个默认的实现类 DefaultChannelPromise 它的setSuccess方法用来调用所
  • Netty closeFuture().sync().channel();块休息 API

    我正在学习 Netty 并开始使用 Spring Boot 一些教程 我的目标是创建一个应用程序 该应用程序设置一个 TCP 端口来接收消息并通过 REST API 呈现它们 大多数教程都说我应该添加这样的东西 serverChannel
  • Java NIO 窗口实现

    在使用 NIO 2 AIO 功能进行项目时 我查看了 旧的 NIO 选择器实现 发现在 Windows 上使用了默认的选择函数 由于内部实现不良 该函数在 Windows 上根本无法扩展 大家都知道 在 Windows 上 IOCP 是唯一
  • 如何使用 netty 通过 HTTP 传输响应

    我正在使用 Netty 3 6 6 我想向调用者发送一个大的响应 我无法将响应正文复制到 ChannelBuffer 中 因为在某些情况下它会非常大 我正在将服务器从CXF迁移到Netty 以前 我只能使用CXF提供的OutputStrea
  • Netty-无法访问类 jdk.internal.misc.Unsafe

    当我将 Java 从 8 升级到 11 时 我收到来自 Netty 的错误 jdk internal misc Unsafe 详细信息如下 我知道这是一条调试级别消息 我可以更改日志级别以忽略它 但我不确定当我忽略它时是否会出现其他问题 例
  • 监控 Netty 事件循环队列的大小

    我们已经实现了对 Netty 事件循环队列的监控 以便了解一些 Netty 模块的问题 该显示器使用io netty util concurrent SingleThreadEventExecutor pendingTasks方法 适用于大
  • 如何在 Netty 客户端中使用 Socks4/5 代理处理程序 (4.1)

    我需要在Netty客户端中配置socks代理 通过socks4或5代理请求不同的站点 尝试了很多免费袜子列表中的代理 例如 www socks proxy net http sockslist net http sockslist net
  • 如何阻止netty在服务器套接字上监听和接受

    有没有办法告诉 netty 停止侦听和接受套接字上的新连接 但完成当前连接上任何正在进行的工作 你可以直接关闭ServerSocketChannel由创建的ChannelFactory 通常 ServerSocketChannel由返回Se
  • 将无符号类型写入 Netty ChannelBuffer

    Netty 的 ChannelBuffer 类提供了从 ChannelBuffer 读取无符号类型的便捷方法 但是似乎没有任何等效的方法用于将无符号类型写入 ChannelBuffer 我觉得我一定错过了什么 推荐的方法是什么 例如将无符号
  • Netty如何使用线程池?

    您能解释一下 Netty 如何使用线程池来工作吗 我是否理解正确 有两种线程池 老板和工人 Boss 用来做 I O worker 用来调用用户回调 messageReceived 来处理数据 这是来自 NioServerSocketCha
  • 与Netty相比,vert.x如何实现卓越的性能?

    最近的TechEmpower 性能基准 http www techempower com benchmarks 一直在 Netty 之上展示 vert x 有时数量很大 根据其网站 vert x 使用 Netty 来实现 大部分网络 IO
  • Netty websocket客户端闲置5分钟后不从服务器读取新帧

    我在服务器端和客户端都使用 Netty 来建立和控制 websocket 连接 我在服务器端有一个空闲状态处理程序 http netty io 4 1 api io netty handler timeout IdleStateHandle
  • Netty中如何发送带有POST参数的请求?

    我正在尝试在 Netty 中发送带有 POST 参数的请求 我搜索了 Netty API Google 和这里 Stack Overflow 但没有找到什么好的办法 这可能是我糟糕的搜索技巧的错 如果是这样 我道歉 有没有什么API可以轻松
  • netty DefaultChannelPipeline 异常捕获

    不幸的是 我不明白 netty 服务器的输出 BUILD SUCCESSFUL Total time 3 seconds Jul 27 2014 2 04 44 AM io netty handler logging LoggingHand
  • Java 互操作——Netty + Clojure

    我正在尝试通过 clojure 使用 netty 我可以启动服务器 但是它无法初始化接受的套接字 下面分别是错误消息和代码 有谁知道什么是 或可能是错误的 我相信问题在于 Channels pipeline server handler T
  • 为什么我们真的需要多个 Netty boss 线程?

    我真的很困惑老板组的线程数量 我无法弄清楚我们需要多个老板线程的场景 在Boss 组是否需要多个线程 https stackoverflow com questions 22280916 do we need more than a sin
  • 由于将请求从主线程传递到工作线程,netty 中出现延迟?

    我有一些关于 Netty 服务器端 TCP IP 应用程序的问题 我想知道在将请求从老板线程传递到工作线程时是否会因为 netty 由于缺少配置等 而出现延迟 我在用 new OrderedMemoryAwareThreadPoolExec
  • 不同的 Netty 版本及其用途

    我现在使用Netty有一段时间了 但永远无法解决这个问题 一个人可以下载四个不同的版本 其中三个正在积极开发中 3 x 4 0 x 4 1 x 5 x 据我了解 3 x 适用于 JRE 1 5 而 JRE 的其他所有版本都高于此版本 我使用
  • Spring WebFlux Netty SSL 与自签名证书错误

    我正在尝试使用服务器端的自签名证书通过本地主机中的 https 访问在 Netty 上运行的 Spring Boot 应用程序 My application properties看起来像这样 server ssl enabled true

随机推荐