1

我正在使用 Netmq 在我的前端和后端之间实现可靠、快速和高可用性的通信。

通信流程是: - 客户端连接(xmpp 客户端、websockets 或任何其他客户端类型)并向后端发送消息,此消息必须由特定类型的工作人员处理(xmpp 调度程序处理 xmpp 消息) - 调度程序连接(例如 xmpp 调度程序)并将消息发送到特定的前端客户端(xmpp 客户端)。

因此,通信可以由顶部(客户端)或底部(调度程序)发起。

为了实现上述目标,这里有一个架构模型: 通讯图

由于我在http://zguide.zeromq.org/page:all上阅读的内容,这还不可靠,因为某个客户端接收到发送到前端(代理)的消息并且该消息被接受在知道是否有任何调度员可以处理我的工作之前。在这个阶段,我可以丢弃此消息或将其存储,以在将来有工作人员可用时进行处理。这不是一个好的解决方案,因为如果 Broker 长时间无人传送流量,大量消息将在 Broker 上累积。正确的行为是:代理不应该接受来自客户端的任何消息,或者客户端应该停止发送消息。

这是我想要实现的行为。为了实现这一点,我需要实施 Majordomo Pattern 对吗?可能是 Majordomo 管理界面吧?问题是我找不到 C# Majordomo 实现的任何好的示例,只有 C、C++ 和 Python 示例。在 Netmq 或任何其他 C# ZMQ 绑定上是否有任何可用的 Majordomo 模式实现?拥有它会很棒,因为仅使用 Netmq 来实现 Majordomo 非常复杂,而且我在这方面还很陌生。

4

1 回答 1

4

我也搜了一下,目前没有例子,可以看一下已有的例子:https ://github.com/zeromq/netmq/tree/master/src/Samples 。

将 czmq majordomo 移植到 netmq 也应该很简单。

于 2015-01-16T16:24:41.440 回答