我即将开始一个项目,它将作为一个简单的消息总线。消息或事件将在等待订阅者时发送给它。消息不必存储,因为我只想将其作为实时数据的任何订阅者的传递。首选的传递机制是Web请求 - REST / JSON。
在我最近与Redis的合作中,我认为这是一个很好的候选人,但由于我们主要是Microsoft shop我也在考虑WCF Service和Windows Service Bus。
订阅者可能并非都是.Net客户端,因此我希望尽可能保持这种通用性,但不管怎么说,.Net客户端连接将是第一个。
我想创建最简单的实现 - 没有大量的开发时间,因为我想将大部分内容用于订阅者。
建议欢迎。
答案 0 :(得分:1)
如果您想使用Redis,请查看Redis的publish / subscribe命令。
我不是.net人,但看起来此链接可能会引导您朝着正确的方向前进:https://github.com/ServiceStack/ServiceStack.Redis/wiki/RedisPubSub
答案 1 :(得分:0)
Windows Azure Service Bus支持消息传递和事件模式。如果您只想跨越网络边界连接服务,则可以使用中继,但在您的情况下,您希望不同类型的客户端与不同的协议进行通信,因此消息传递可能更合适。您可以使用任何协议/编程模型对队列消息进行排队 - > .NET API,WCF绑定和简单的REST客户端。从模式的角度来看,您可以使用队列或主题和订阅,具体取决于您是否需要单个请求/响应通道或广播等。以下代码示例演示如何使用WCF编程模型。
http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-WCF-ed259f73
http://code.msdn.microsoft.com/windowsazure/Windows-Azure-Inter-Role-9935c439
对于REST客户端,以下示例将有所帮助: http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-569cff88
有关队列/主题的更多信息,请访问: http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues/ http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/
REST API参考可在此处获得: http://msdn.microsoft.com/en-us/library/windowsazure/hh780717
答案 2 :(得分:0)
我们编写了一个基于ZeroMq(传输),Cassandra(对等发现和持久性)和Protobuf(序列化)的点对点消息总线Zebus。
它使用目录/网状拓扑,这意味着没有单点故障,也没有单一瓶颈。这在向外扩展时非常有用。
您可以在此处详细了解该架构:https://github.com/Abc-Arbitrage/Zebus