gpt4 book ai didi

java - 如何快速知道服务器是否在线?

转载 作者:搜寻专家 更新时间:2023-11-01 03:12:53 25 4
gpt4 key购买 nike

我正在开发一个 Java 客户端/服务器应用程序,其中将有大量的客户端必须连接的服务器。问题是他们中的绝大多数可能不会同时服务。客户端需要在列表中找到至少一个可用的,因此它会迭代它,寻找一个可用的服务器(当它找到第一个时停止,一个就足够了)。

问题是这个列表可能会很长,几十个 zousands,它们甚至可能是数百个......而且可能只有 1% 的连接(即执行服务器)。这就是为什么我需要一种聪明而快速的方法来知道服务器是否已连接,而无需等待超时等。我接受各种建议。

我考虑过对服务器列表进行统计排序,以便更频繁可用的服务器是最先尝试的主机。但这还不够。

也许多播 UDP 数据报?客户端/服务器之间的连接是 TCP,但也许要找到服务器,最好先进行 UDP 多播并等待答案,例如......你怎么看?

:)

编辑:

服务端和客户端都使用线程池。

服务器池并发处理 200 个线程,当池已满时,将其余线程排队,直到队列达到 200 个可运行线程。然后它会阻塞,并停止接受连接,直到队列中再次有空闲空间。

客户端有一个缓存的线程池,它可以同时向你想要的服务器发出所有请求(按常识,显然......)。

最佳答案

这只是一个初步的想法,会增加一些开销,但您可以让服务器定期 ping 一些客户端将通过其连接的集中式服务器。然后,如果服务器在一段时间内没有 ping 通,它就会被删除。

关于java - 如何快速知道服务器是否在线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com