我将ZeroMQ 实时交换协议 (ZRE)视为在分布式应用程序中构建对等点的自动发现的灵感。
我按照这个模型在 Python 中使用 UDP 构建了一个简单的原型应用程序。似乎它具有(回想起来是显而易见的)限制,即它仅适用于检测所有对等点都在其他机器上的对等点。这是由于发现端口上的套接字绑定操作。
继续阅读SO_REUSEADDR
并SO_REUSEPORT
告诉我,我不能完全使用 ZRE 中描述的 UDP 广播方案来做到这一点。
如果您需要为分布式应用程序构建一个自动发现机制,以便多个应用程序实例(可能具有不同的版本)可以在同一台机器上运行,您将如何构建它?