2012-10-19 158 views
1

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

如果我想将事件发送到Web服务器或Linux机器,我的解决方案将无法工作。我可以选择更通用的解决方案吗?

回答

2

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

如果您正在寻找更多性能,还有http://www.zeromq.org/这将为您提供一个非常灵活和强大的消息结构层来处理,但对于大多数情况下它可能是矫枉过正。

+1

+1推荐ZeroMQ! :-) –

2

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

消息服务器通常是相当无关大约平台,有(其中hexist在另一个答案推荐)几个可用的开放和自由的替代品,如RabbitMQApache ActiveMQZeroMQ。这些服务器(涉及到ZeroMQ的定义问题)提供了几种使用消息进行集成的不同方式,包括pub/sub。

企业服务巴士通常比较复杂,但也比较灵活。他们通常支持消息转换,复杂的路由甚至协调。在这里也有几种不同的开放和免费的替代品,例如Mule,Apache SynapseMass Transit

我还没有使用所有上述替代方法,但我认为如果您只需要寻找消息传递,那么RabbitMQ可以满足您的需求,并且如果您还需要一些漂亮的服务总线功能,请添加MassTransit(用.NET编写)。

+0

我可以补充一下,“企业集成模式”一书是关于通用和健壮集成模式主题的极佳参考。 –

相关问题