我正在使用 ZeroMQ 实现服务(一个很好的网络抽象)。理想情况下,如果客户端可以确定服务器是否符合预期,那就太好了。
例子:
有3个服务:
- 和服务。(在端口 50001 上运行)
- 倍增服务。(在端口 50002 上运行)
- 电力服务。(在端口 50003 上运行)
但是有一种情况,当服务不在默认端口上运行时,因为另一个服务获取了这些端口。
为了提高程序的可靠性,应该处理这种情况。
如何检查服务是否符合预期?我的意思是一个标准的、最好的算法(或找到它的关键字)。
我对算法的想法(可能很不完美):
- 客户端发送握手,其中首先包含服务标识符。
- 客户端等待超时响应(例如 30 秒)
- 服务器正确响应。
- 好的,客户端开始通信。
例外:
- 不正确的反应
- 暂停