Netty - 在 java 中并发发送消息的最佳方式
Netty - The best way to send message concurrently in java
我有 150 个线程。
每个线程都有 Netty 客户端 并连接到服务器。
我应该使用更多的 150 个线程来发送吗?
我应该使用 75 个线程来发送吗?
我应该使用无线程发送吗?
我的本地测试没有意义。 (超过50我无法操作服务器)
请帮助我。
这没有黄金法则。根据您的应用程序,您会发现;
- 1个连接1个线程就可以用完机器的所有资源
- 使用大约CPU个数到2 * CPU个数就足够用完机器的所有CPU
- 如果您有同步请求(而不是异步请求)和高网络延迟,您可能会发现大部分时间都花在等待数据上,在这种情况下,更多连接将有助于缓解这种延迟。
我的偏好是允许异步 messaging/requests 并允许单个连接使用机器上的所有 CPU/resources 如果它有意义的话,因为当你测试 150 繁忙时你可能会得到更好的结果连接,在现实世界中你可能不会同时或以相同的程度都活跃。
我有 150 个线程。
每个线程都有 Netty 客户端 并连接到服务器。
我应该使用更多的 150 个线程来发送吗?
我应该使用 75 个线程来发送吗?
我应该使用无线程发送吗?
我的本地测试没有意义。 (超过50我无法操作服务器)
请帮助我。
这没有黄金法则。根据您的应用程序,您会发现;
- 1个连接1个线程就可以用完机器的所有资源
- 使用大约CPU个数到2 * CPU个数就足够用完机器的所有CPU
- 如果您有同步请求(而不是异步请求)和高网络延迟,您可能会发现大部分时间都花在等待数据上,在这种情况下,更多连接将有助于缓解这种延迟。
我的偏好是允许异步 messaging/requests 并允许单个连接使用机器上的所有 CPU/resources 如果它有意义的话,因为当你测试 150 繁忙时你可能会得到更好的结果连接,在现实世界中你可能不会同时或以相同的程度都活跃。