每个连接的 Netty 多线程

2024-01-18

我是 Netty 新手。我想开发一个服务器,旨在接收来自可能少数(假设最多有 2 个)客户端的请求。但是每个客户端都会不断地向服务器发送许多请求。服务器必须处理此类请求并响应客户端。因此,在这里我假设即使我配置了多个工作线程,它也可能没有用,因为只有 2 个活动连接。工作线程再次阻塞,直到它处理并响应客户端。因此,请让我知道如何处理此类问题。 如果我在工作线程中使用threadpoolexecutor以多线程方式处理两个客户端请求,它会高效吗?或者如果可以通过netty框架实现,请让我知道如何做到这一点? 提前致谢...


如果我理解正确的话:您的客户端(2)将发送许多消息,每条消息都意味着服务器尽快做出答复。

可以看到2个选项:

  1. answear 过程的时间很短(足够短,不会成为您想要达到的速率的问题,这意味着 1 个线程能够按照 1 个客户端所需的速度进行 answear):然后您可以继续使用 Netty 的标准线程(在服务器引导程序中设置 1 个工作线程(一次用于 1 个客户端)。这是最短路径。

  2. answear进程时间不够短(速率会很可怕,比如因为有一个“长时间”的进程,比如阻塞调用、数据库访问、文件写入……):那么可以添加线程池(一组)在 Netty 管道中为您的 ChannelHandler 执行此类阻塞/长过程。

以下是从 ChannelPipeline 中摘录的 API 文档摘录:http://netty.io/4.0/api/io/netty/channel/ChannelPipeline.html http://netty.io/4.0/api/io/netty/channel/ChannelPipeline.html

// Tell the pipeline to run MyBusinessLogicHandler's event handler methods
// in a different thread than an I/O thread so that the I/O thread is not blocked by
// a time-consuming task.
// If your business logic is fully asynchronous or finished very quickly, you don't
// need to specify a group.
pipeline.addLast(group, "handler", new MyBusinessLogicHandler());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每个连接的 Netty 多线程 的相关文章

  • Shared Web Workers 是否会在单页重新加载、链接导航中持续存在

    共享网络工作者 http www whatwg org specs web apps current work shared workers introduction旨在允许来自同一站点 来源 的多个页面共享单个 Web Worker 但是
  • IO 异常 - 读结束死 - 在此示例中导致它的原因以及如何修复它 - Java 中的多线程应用程序

    这是一扩大 https stackoverflow com questions 22180458 how to set boolean flag of thread 1 from thread 2 in java multithreadin
  • 如何使用多线程

    我有这个代码 import thread def print out m1 m2 print m1 print m2 print n for num in range 0 10 thread start new thread print o
  • Java 中的 LRU 缓存实现

    我看过下面的代码 我认为addElement方法的实现中有一个无用的while循环 它永远不应该有比 size 1 更多的元素 因为已经有一个写锁 那么为什么 addElement 方法会删除元素直到它达到这个条件 真的 while con
  • 使用 WaitHandle.WaitAll 时是否可以对 ThreadPool 中的任务进行分组/隔离?

    我面临的情况如下 因为 ThreadPool 每个进程有 1 个实例 所以我的问题是方法 1 会在 3 秒后取消按方法 2 排队的任务 http请求进来 method 1 gets executed first ThreadPool Que
  • 同时运行 x 个网络请求

    我们公司有一个网络服务 我想通过我自己的服务发送 XML 文件 存储在我的驱动器上 HTTPWebRequestC 中的客户端 这已经有效了 Web服务同时支持5个同步请求 一旦服务器上的处理完成 我就会从Web服务获得响应 每个请求的处理
  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • 何时何地调用 EventQueue.invokeLater() 方法

    我对线程和 GUI 完全陌生 因此我不知道在哪里调用它EventQueue invokeLater 方法 我应该在每个事件监听器和其他东西中调用它吗 调用这个方法的 东西 是什么 如果是这样 是否有任何替代方法来调用一次应用到处方法 以便不
  • 多线程调试技术

    我想知道是否有人知道多线程应用程序调试技术的一个很好的调查 理想情况下 我正在寻找基于案例的分析 死锁 饥饿 损坏的共享状态 Net 特定的或通用的 我不知道有哪篇文章或书籍可以满足您的需求 因此这是我从 12 年 Windows 多线程调
  • 让线程在窗体关闭时保持运行

    我在我的应用程序上创建了一个同步线程 我想知道如果我关闭申请表 是否有办法让该线程保持打开状态 直到完成同步过程 调用线程的WaitFor方法在您的 DPR 文件中 之后Application Run线 如果线程已经运行完毕 那么WaitF
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • Boost:如何创建一个线程以便可以控制它的所有标准输出、标准错误?

    我用 C 创建了一个 win32 控制台应用程序 我使用一些API 不是我的 我不能修改它的来源 它是这样写的 它会将一些信息写入控制台屏幕 而不询问 每次我调用它时 每秒 48 次 所以我想将它放入某个线程并限制其输出能力 但我需要得到当
  • 依赖于不同队列上的另一个操作的 NSOperation 无法启动

    我有操作的依赖图 并且使用多个队列来组织各种操作流 例如 peopleQueue sitesQueue sessionQueue sessionQueue loginOp fetchUpdatedAccountOp peopleQueue
  • 获取Windows下新线程/删除线程的通知

    创建 DLL 时 您可以在 DllMain 函数 DLL THREAD ATTACH DLL THREAD DETACH 中获取有关新线程 退出线程的通知 有没有办法在 非托管 可执行文件中从 Windows 获取这些或等效通知 是的 在您
  • 初始化 ConcurrentHashMap 值的最快方法

    ConcurrentHashMap 通常在并发环境中用于聚合某个键下的某些事件 例如计算某些字符串值的命中数 如果我们事先不知道密钥 我们需要有一个好的方法来根据需要初始化密钥 它应该在并发性方面快速且安全 这个问题的最佳模式 就效率而言
  • 如何使 ScheduledExecutorService 在计划任务取消时自动终止

    我正在使用一个ScheduledExecutorService如果网络连接已打开超过几个小时 则关闭该连接 然而 在大多数情况下 网络连接在超时之前就关闭了 所以我取消了ScheduledFuture 在这种情况下 我还希望执行程序服务终止
  • SQLite同时读写

    我读过很多主题 但无法找到问题的答案 是否可以同时读写 我有后台线程更新一些数据 UI 需要存储在数据库中的一小部分数据 所以在UI线程中执行SELECT操作 但当更新正在进行时它会阻塞 结果 UI 冻结了几秒钟 有人在写入时成功从数据库读
  • 检测您何时进入/退出 Xamarin.iOS 中的主线程

    Xamarin MonoTouch 有没有办法检测主线程中是否正在调用代码 我正在寻找类似于Java的东西EventQueue isEventDispatchThread 我发现 Swing 编程很方便assert时不时 或有时assert
  • Java 线程 JavaDoc

    我编写了一个只能在特定线程上调用的方法 是否应该将标准注释或注释添加到方法的 javadoc 中来表示这一点 不知道有任何这样的标准注释 Java 并发实践 http www javaconcurrencyinpractice com 在第
  • .NET 或 Windows 同步原语性能规范

    我目前正在写一篇科学文章 我需要非常准确地引用 有人可以向我指出 MSDN MSDN 文章 一些已发表的文章来源或一本书 我可以在其中找到 Windows 或 NET 同步原语的性能比较 我知道这些是按性能降序排列的 互锁 API 关键部分

随机推荐