【发布时间】:2017-05-06 23:37:58
【问题描述】:
我需要创建一个分布式系统,其中我有以下节点类型:
- 客户端 [1-n 个实例]
- 服务器 [1-n 个实例]
- 代理 [1 个实例 - 基本上是任何服务器的转发器]
- 云服务器 [1 个实例 - 基本上是任何代理的转发器]
[Client] -> [Cloud Server] -> [Proxy -> Server] - 分布式设置
[客户端 -> 服务器] - 本地设置
[代理和服务器在同一个节点或网络上运行]
客户端一旦与服务器在同一网络上,也应该允许直接在服务器上连接,而不是通过云服务器/代理。
服务器可以连接多个客户端,但除了响应客户端的请求外,它还可以为客户端发布消息。 Server/Cloud Server需要通过id来区分clients节点,随时知道是否连接/断开。
据我了解,服务器应提供一个 REQ/REP 端点,以允许与代理/本地客户端以及 PUB 端点交换消息,其中代理/本地客户端将订阅来自服务器的任何通知.
关于代理,看起来我必须有两个端点;一个在内部,两个端点在外部。基本上,我将有一个 ROUTER/DEALER 端点用于 REQ/REP 和 XPUB/XSUB 端点,用于针对远程客户端的 PUB/SUB 通知。但我担心的是,外面的代理总是有一个节点要回复,只有一个节点订阅通知,这就是云服务器。
关于云服务器,看起来我将拥有类似于我上面描述的代理的东西,但与上面的代理不同,我看到 ROUTER/DEALER 和 XPUB/XSUB 填补了账单。
显然我是 ZeroMQ 的新手,它提供了很多东西。我想暂时专注于需要什么,非常感谢您的帮助。
【问题讨论】:
标签: network-programming zeromq