java - Netty - 在java中并发发送消息的最佳方式

标签 java multithreading concurrency netty

我有 150 个线程。

每个线程都有Netty Client并且连接到服务器。

我应该使用更多 150 个线程来发送吗?

我应该使用 75 个线程来发送吗?

我应该不使用线程发送吗?

我的本​​地测试没有意义。 (我无法操作超过50个服务器)

请帮助我。

最佳答案

这没有黄金法则。根据您的应用程序,您可以发现:

  • 只需一个线程的一个连接就足以使用机器的所有资源。
  • 使用大约 2 * CPU 数量的 CPU 数量就足以使用机器的所有 CPU。
  • 如果您有同步请求(而不是异步请求)且网络延迟较高,您可能会发现大部分时间都在等待数据,在这种情况下,更多连接将有助于缓解这种延迟。

我的偏好是允许异步消息传递/请求,并允许单个连接使用计算机上的所有 CPU/资源(如果有意义的话),因为在现实世界中,当您使用 150 个繁忙连接进行测试时,您可能会得到更好的结果他们可能不会同时活跃或达到相同的程度。

关于java - Netty - 在java中并发发送消息的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850342/

相关文章:

c - 'busy-wait'无限循环和条件验证无限循环的区别

java - 通过不同的java线程从同一个数据库表中读取不同的数据集

Perl 同时下载 HTTP::Async 和 Net::Async::HTTP 太慢

java - ArrayList 上的同步

java - Selenium 网格,并行运行时测试在同一线程上开始

java - 如何在 Java 项目中包含一个资源文件以仅与 new File() 一起使用?

go - 基本 goroutine 和 channel 模式 : multiple goroutines for one channel

Java:如何原子地替换映射中的所有值?

java - 如何将多个客户端连接到单个服务器?

java - 使用 arraylist 匹配 Hashmap 中的键