基于 ZeroMQ Session 的请求调度或条件路由
ZeroMQ Session based request dispatching or conditional routing
我正在尝试解决以下问题,想知道应用的最佳方法是什么?
我想通过 ZeroMQ 设置版本化通信,这实际上意味着任何客户端首先进行握手说明其消息协议的版本,然后所有后续请求仅转发给特定的一组工作人员,即能理解这个协议的。
我看到了 Router/Dealer 的例子,但是转发总是发生在所有工人身上。
IMO 这有点像会话,它是基于握手建立的,所有未来的请求都是在特定的上下文中进行的。这可以用 ZeroMQ 完成吗?
我知道我可以将一些 ID 发回客户端并要求它输入所有未来的请求,但我想避免这种干扰。
附带说明:我在 C++ 中实现了这种方法。我不介意您的回答是否代表了考虑到 ZeroMQ C API 或 cppzmq 包装器中可用功能的一般想法。无需编写完整的解决方案,只需编写它的实现方式即可。
是的,这似乎可行:
完全尊重不要通过 ID/multipart 消息处理进入 "in-band" 信令,可以使用静态和动态混合使用 as-是ZeroMQ资源。
第 0 步: 您的中央机构处理初始 "client" 联系/握手/身份验证
第 1 步: 每个 "client" 收到一组指示,因为它 identity/version 获得批准,基于 0)
第 2 步: 临时指示 "client" 可以 { .connect() | .bind() }
使用适当的接入点
第 3 步: 作为架构奖励,这可以作为具有重新协商和节点重新发现的分布式平台享受,以实现更健壮、可扩展的性能和更高的安全动机场景
我们自己的想象力是唯一的天花板:
简而言之,人们可能很快就会忘记标准的可扩展正式通信模式,这些模式更像是一组用于临时定义的体系结构的构建块。这是 ZeroMQ 或 nanomsg 实现的最大功能。
可能 read more on advanced use-cases in this ( and check the book there ... ).
我正在尝试解决以下问题,想知道应用的最佳方法是什么?
我想通过 ZeroMQ 设置版本化通信,这实际上意味着任何客户端首先进行握手说明其消息协议的版本,然后所有后续请求仅转发给特定的一组工作人员,即能理解这个协议的。
我看到了 Router/Dealer 的例子,但是转发总是发生在所有工人身上。
IMO 这有点像会话,它是基于握手建立的,所有未来的请求都是在特定的上下文中进行的。这可以用 ZeroMQ 完成吗?
我知道我可以将一些 ID 发回客户端并要求它输入所有未来的请求,但我想避免这种干扰。
附带说明:我在 C++ 中实现了这种方法。我不介意您的回答是否代表了考虑到 ZeroMQ C API 或 cppzmq 包装器中可用功能的一般想法。无需编写完整的解决方案,只需编写它的实现方式即可。
是的,这似乎可行:
完全尊重不要通过 ID/multipart 消息处理进入 "in-band" 信令,可以使用静态和动态混合使用 as-是ZeroMQ资源。
第 0 步: 您的中央机构处理初始 "client" 联系/握手/身份验证
第 1 步: 每个 "client" 收到一组指示,因为它 identity/version 获得批准,基于 0)
第 2 步: 临时指示 "client" 可以 { .connect() | .bind() }
使用适当的接入点
第 3 步: 作为架构奖励,这可以作为具有重新协商和节点重新发现的分布式平台享受,以实现更健壮、可扩展的性能和更高的安全动机场景
我们自己的想象力是唯一的天花板:
简而言之,人们可能很快就会忘记标准的可扩展正式通信模式,这些模式更像是一组用于临时定义的体系结构的构建块。这是 ZeroMQ 或 nanomsg 实现的最大功能。
可能 read more on advanced use-cases in this ( and check the book there ... ).