我们正在考虑使用事件驱动架构(EDA)集成一些粗粒度业务服务,并且这些服务(REST)的服务器端在Java和.NET(C#)中实现.我们最初想到使用RabbitMQ(和AMQP协议)作为中立和开放的手段(在这两种语言中具有良好的客户端支持),但它意味着必须支持另一个运行时(Erlang)以及Java和CLR.我们也在关注Apache qPid,因为它具有AMQP协议的Java代理实现,可能会消除这种担忧.
有没有人有尝试在ActiveMQ上使用更丰富的Apache Camel ESB以Pub-Sub EDA方式集成Java和.NET服务的经验?有
我错过了任何其他可能的建议,通过这个路线?
谢谢
解决方法:
如果您正在寻找的是支持EDA的消息传递平台,那么Camel并非绝对必要. Camel是一个在不同的有效载荷格式之间进行转换的框架,在Web服务,消息传递,RSS提要和大约160 others之间进行路由.
从上面的问题来看,ActiveMQ应该能够处理开箱即用的用例.
从客户端的角度来看,ActiveMQ对Java(JMS – 标准)和C/C++#(CMS/NMS – 几乎完全是JMS的副本)提供了库支持.通过(pretty much also standard)STOMP协议支持其他语言(Ruby,Python,Javascript等).
我在一个混合的.Net / Java环境中使用过ActiveMQ,它完全按照它所说的那样做.所有这些都在一个不错的Java运行时中,可以通过JMX使用您喜欢的监视工具进行检测.