将事件发送到多个客户端

时间:2012-10-19 22:02:11

标签: architecture publish-subscribe

我需要向多个客户端发送事件。目前我正在使用基于Pub-Sub \ Observer模式的解决方案,使用命名管道在WCF中实现。

如果我想将事件发送到Web服务器或Linux机器,我的解决方案将无效。对于更通用的解决方案,我有哪些选择?

2 个答案:

答案 0 :(得分:2)

我喜欢http://redis.io/我的pubsub需求,它是多平台的,很多语言支持它,非常容易绑定,并且快速地如同地狱。 Redis也是一个键/值存储引擎,并具有一些其他方便的数据存储功能,因此您可能会发现其它用途,用于在Windows和Linux进程之间交换更多永久数据。

如果您正在寻找更高的性能,那么还有http://www.zeromq.org/可以为您提供一个非常灵活且功能强大的消息传递结构层,但对于大多数情况来说,这可能是过度的。

答案 1 :(得分:2)

我猜你所需要的是消息服务器或企业服务总线,假设你愿意放弃WCF并命名管道。

消息传递服务器通常对平台非常不了解,并且有几种可用的开放和免费替代方案,例如RabbitMQApache ActiveMQZeroMQ(在另一个答案中推荐使用hexist)。这些服务器(关于ZeroMQ的定义问题)提供了几种使用消息的不同集成方式,包括pub / sub。

企业服务总线通常更复杂,但也更灵活。它们通常支持消息转换,复杂路由甚至编排。此处还有一些不同的开放和免费替代方案,例如MuleApache SynapseMass Transit

我没有使用上述所有选项,但我认为RabbitMQ可以满足您的需求,如果您只是在寻找消息,如果您还需要一些漂亮的服务总线功能,请添加MassTransit(用.NET编写)