当前位置: 首页 > 知识库问答 >
问题:

对ServerBootstrap和Bootstrap使用相同的netty EventLoopGroup是个好主意吗?

陈泰宁
2023-03-14

Norman Maurer有一个小的Netty最佳实践指南,建议尽可能重复使用NioEventLoopGroup,更准确地说,该指南指出

如果可以,请重用EventLoopGroup!

在我的情况下,我写了一个应用程序,将金融价格变动数据多路复用到一堆连接的Web套接字客户端。目前有三个引导程序,目前它们都使用单独的蔚来环集团:

  • 1个ServerBootStrap处理连接的Web套接字。
  • 1个Bootstrap连接到ServerBootStrap。
  • 2个用于不同刻度数据源(远程服务器)的Bootstrap。

阅读这张特殊的幻灯片,我只需创建一次NioEventLoopGroup,并将其用于所有列出的BootStraps。

问题是,我不知道这是否是一个好主意,也不知道是否有任何限制。这句话说:“重用...如果可以的话!“,但我不知道这句话所暗示的限制。

要说明一些数字:服务器引导执行程序应处理 ~10k 连接的 Web 套接字客户端。数据源将保持不变,因此与远程服务器有 2 个保持活动状态的连接。

很高兴有任何评论!

共有1个答案

拓拔浩阔
2023-03-14

总的来说,这完全没问题。只要您不在任何地方执行任何阻止操作即可。使用相同的事件循环组可能会为您节省一些内存,也许是一些CPU。这实际上取决于您的用例。

但是,在您的情况下,我更喜欢使用2EventLoopGroup。1用于ServerBootstrap,1用于Bootstrap。这是因为对于高负载(10k web套接字似乎喜欢可能的高负载),您将更容易检测瓶颈。至少你可以确定问题不是来自Bootstrap连接。

我这么说是因为最近我不得不在完全相同的情况下将我的单个< code>EventLoopGroup拆分为两个,以便找到高CPU使用率的原因。

 类似资料:
  • 问题内容: 我已经多次听到您不应该执行或出于性能方面的考虑,但是无法深入了解有关它的更多信息。 我可以想象数据库随后将 所有 列都用于操作,这可能会导致性能下降,但是我不确定。有人有关于该主题的更多信息吗? 问题答案: 1.关于count(*)vs. count(其他) SQL是声明性的,您可以指定所需的 内容 。这不同于指定 如何 获得所需的东西。这意味着数据库引擎可以自由地以其认为最有效的方式

  • 问题内容: 我公司在另一个国家/地区拥有一个开发团队,他们坚持使用Vue在我们现有平台的基础上构建新模块。我们的主要平台是基于React与Redux构建的单页面应用程序。 仅基于团队技能的混合框架是一个好主意吗?这两个框架是否可行? 问题答案: 如果主要原因是“我已经知道Vue”,那么我会拒绝。 如果他们已经知道Vue,应该很容易学会反应。 我认为这两个框架可以协同工作,您可以在使用Vue构建的R

  • 问题内容: 例如,这是个好主意吗? 如果您在同一台服务器上有两个虚拟主机,一个虚拟主机,一个虚拟主机,并且使用不同的Apache DocumentRoots,则这将避免当include的来源未知并且可以在任何目录中时,不必包含绝对路径。 (注意:以下部分中的文件路径是相对于Web根目录的。实际上,它们类似于,其中Web根目录在哪里) 例如:我有一个/core/init.php,它是使用来自网站(,

  • 本文向大家介绍Python和多线程。这是个好主意吗?,包括了Python和多线程。这是个好主意吗?的使用技巧和注意事项,需要的朋友参考一下 实际上,这不是一个好主意。 Python不允许多线程,但是如果您想运行需要等待IO之类的程序速度,则它会占用很多时间。由于线程包无法让您使用额外的CPU内核,因此python不支持多线程,因为Cpython解释器上的python不支持通过多线程执行真正的多核。

  • 问题内容: 目前,我正在阅读Spring,用于AOP的示例之一是记录方法调用的开始和结束。 我还读到使用AOP会影响性能。 对于这种类型的日志记录,使用Spring AOP是个好主意吗?我的理解是,Spring使用动态AOP最好将静态AOP(如AspectJ)用于这种类型的AOP。 当前,我工作的公司的编码策略需要大量的日志记录,并且我想减少必须编写的日志记录代码量并提高代码的可读性。 我在树错树

  • 问题内容: 在Android Exceptions中使用printStackTrace()是个坏主意吗? 问题答案: 是的,这是一个坏主意。相反,您应该使用专门为这些目的设计的Android内置日志类:http : //developer.android.com/reference/android/util/Log.html 它为您提供了记录调试消息,警告,错误等的选项。 使用以下命令记录错误: