Async Majordomo模式(Netmq)

时间:2015-01-15 15:35:20

标签: c# architecture zeromq netmq

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

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

因此,通信可以由顶层(客户端)或底层(调度程序)启动。

为了实现上述目标,这是一个架构模型: Communication Diagram

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

这是我想要实现的行为。为了得到我需要实现Majordomo模式吧?可能Majordomo管理界面对吗? 问题是我找不到C#Majordomo实现的任何好例子,只有C,C ++和Python的例子。在Netmq或任何其他C#ZMQ Binding上是否有可用的Majordomo模式?拥有它会很棒,因为使用Netmq实现Majordomo是非常复杂的,而且我在这个领域是新的。

1 个答案:

答案 0 :(得分:2)

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

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