我需要发送事件给多个客户端。目前,我正在使用在WCF中使用命名管道实现的Pub-Sub \ Observer模式解决方案。发送事件给多个客户端
如果我想将事件发送到Web服务器或Linux机器,我的解决方案将无法工作。我可以选择更通用的解决方案吗?
我需要发送事件给多个客户端。目前,我正在使用在WCF中使用命名管道实现的Pub-Sub \ Observer模式解决方案。发送事件给多个客户端
如果我想将事件发送到Web服务器或Linux机器,我的解决方案将无法工作。我可以选择更通用的解决方案吗?
我喜欢http://redis.io/为我的pubsub需求,它是多平台,许多语言支持它,很容易绑定,并且快速地狱。 Redis也是一个关键/值存储引擎,并具有一些其他方便的数据存储功能,因此您可能会发现其他用途,以便在Windows和Linux进程之间交换更多永久性数据。
如果您正在寻找更多性能,还有http://www.zeromq.org/这将为您提供一个非常灵活和强大的消息结构层来处理,但对于大多数情况下它可能是矫枉过正。
我猜测消息服务器或企业服务总线是你所需要的,假设你愿意离开WCF和命名管道。
消息服务器通常是相当无关大约平台,有(其中hexist在另一个答案推荐)几个可用的开放和自由的替代品,如RabbitMQ,Apache ActiveMQ和ZeroMQ。这些服务器(涉及到ZeroMQ的定义问题)提供了几种使用消息进行集成的不同方式,包括pub/sub。
企业服务巴士通常比较复杂,但也比较灵活。他们通常支持消息转换,复杂的路由甚至协调。在这里也有几种不同的开放和免费的替代品,例如Mule,Apache Synapse和Mass Transit。
我还没有使用所有上述替代方法,但我认为如果您只需要寻找消息传递,那么RabbitMQ可以满足您的需求,并且如果您还需要一些漂亮的服务总线功能,请添加MassTransit(用.NET编写)。
我可以补充一下,“企业集成模式”一书是关于通用和健壮集成模式主题的极佳参考。 –
+1推荐ZeroMQ! :-) –