2012-07-30 75 views
2

Activemq,Redis和Apache骆驼是否合适?Activemq,Redis和Apache骆驼是否合适?

一个高高性能企业级集成解决方案正在计划进行的跨多个应用程序

我的目标是使溶液 一个。独立于消费者的表现 b。能够在发生任何问题时排除故障 c。高可用性和故障转移支持 d。 Hanlde 10k信息每秒

这里我打算有 a。 b在所有应用程序服务器中运行的activemq代理网络,并将所使用的消息存储在redis数据存储库中 b。从redis数据存储中,应用程序可以通过骆驼端点 (骆驼端点被选择来在到达应用程序之前处理消息)检索消息。

也可以ActiveMQ的与只Redis的+ Apache的骆驼删除,因为我从Redis的完成大部分的ActiveMQ的东西

讨论的形式看到可以在该技术堆栈中的任何一个建议。

回答

0

ActiveMQ和Camel在一起工作得很好,扩展性非常好 - 在适当的硬件下处理负载应该没问题。

你在想这样的事吗?

Message producer App -> ActiveMQ -> Camel -> Redis 

Message Consumer App <- Camel [some endpoint] <- Redis 

之间Puting ActiveMQ的通常是为了实现HA,负载平衡和使解决方案弹性的一种非常好的方式。取决于您使用机器的具体设置等。ActiveMQ可以通过多种方式帮助解决HA问题。

如果您的应用程序使用除JMS/ActiveMQ消息传递之外的其他协议,即HTTP,原始tcp或类似消息,则删除ActiveMQ可能是一个不错的选择。你能详细说明应用程序将如何与骆驼进行通信吗?默认情况下,ActiveMQ支持事务处理,保证传送,并且您可以在服务器上使用有限数量的线程,即使您的流量很大。对于其他协议,这可能有点棘手。在ActiveMQ中没有HA层(集群)的情况下,您需要设置Redis以在所有方面处理HA,这可能同样简单,但Redis有点内存不足,所以请注意这一点。

+0

Hi Petter, 感谢您对Redis的见解。 其实我想到 消息Prodcer应用程序 - > Redis - >骆驼 - > ActiveMQ 消息应用程序< - Redis < - 骆驼< - ActiveMQ 应用程序是不同的性质,因此想到将Redis接近应用程序,可能减少兼容性问题。 此外,我打算将驼峰功能与ActiveMQ捆绑在一起,而不是与App(感谢ActiveMQ对Camel的嵌入式支持) – srini 2012-07-31 22:14:18