Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器自动发现节点的算法?_Java_Http_Architecture - Fatal编程技术网

Java 服务器自动发现节点的算法?

Java 服务器自动发现节点的算法?,java,http,architecture,Java,Http,Architecture,长期的读者,第一次在这里提问 情况:我们有一个服务器和节点体系结构,其中节点可以在同一台或不同的机器上,并用于负载平衡。当前配置时,节点知道服务器在哪里(IP、端口),启动时,节点开始定期(每隔T秒)向服务器发送HTTP post请求,以通知服务器其联系信息(IP、端口……)。服务器有一个可用节点列表,节点报告后,其信息存储在列表中。如果节点未能在2*T秒内报告,则其条目将从列表中删除。这样,服务器就可以获得关于可用内容的最新信息。事实证明,这个方案比前一个方案要好得多,后者使用了配置文件,我们

长期的读者,第一次在这里提问

情况:我们有一个服务器和节点体系结构,其中节点可以在同一台或不同的机器上,并用于负载平衡。当前配置时,节点知道服务器在哪里(IP、端口),启动时,节点开始定期(每隔T秒)向服务器发送HTTP post请求,以通知服务器其联系信息(IP、端口……)。服务器有一个可用节点列表,节点报告后,其信息存储在列表中。如果节点未能在2*T秒内报告,则其条目将从列表中删除。这样,服务器就可以获得关于可用内容的最新信息。事实证明,这个方案比前一个方案要好得多,后者使用了配置文件,我们经常不得不处理错误的配置

新的条件:由于安全问题(不知道细节),我们需要使节点保持静默-它们不能启动与服务器的连接,只能接受和响应

正因为如此,我们目前的算法是无效的,我正在寻找新的选项来呈现给我的团队。我知道最简单的解决方案是回到静态配置,但我希望避免这种情况。我正在寻找建议,不是详细的,而是如何实现这一点的一般想法,而不是HTTP协议所必需的。我希望在座的人有一个想法或者已经解决了这个问题


谢谢。

如果您的节点没有向服务器表明它们存在,服务器将不得不假设它们存在于某些位置,然后轮询这些位置以确定节点是向上还是向下

这意味着您的服务器必须手动配置,以便事先了解节点的位置。如果服务器没有被告知某个节点的存在,则即使该节点可用且空闲,它也不会使用该节点

基本上,如果可以找出从节点到负载平衡服务器的网络流量,那么就可以找出从负载平衡服务器到工作节点的网络流量。因此,有了新的体系结构,我真的不希望安全性有任何提高


一个更好的解决方案是充分加密通信量,使窃听者无法推断消息的内容,并以一种方式握手,即使攻击者破坏了加密并试图模拟连接的任意一端,他们在试图找出握手的时候会发出太多警报。

是否有可能实现无连接UDP/多播?我也在考虑过,但没有UDP和多播的经验。因此,我不排除这种可能性,因为我不知道新的安全约束的细节。但是,它必须变得智能化,这样网络才不会被淹没。我想这是最好的方法。谢谢