2

Activemq、Redis 和 Apache camel 是正确的组合吗?

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

我的目标是提出解决方案。独立于消费者的表现 b. 能够在任何问题的情况下排除故障 c. 具有故障转移支持的高可用性 d. 每秒处理 10k 条消息

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

也可以仅使用 Redis + Apache camel 来删除 ActiveMQ,正如我从讨论表中看到的那样,Redis 完成了大部分 ActiveMQ 工作

任何人都可以就这个技术堆栈提出建议。

4

1 回答 1

0

ActiveMQ 和 Camel 可以很好地协同工作并且可以很好地扩展 - 在适当的硬件条件下处理负载应该没有问题。

你在想这样的事情吗?

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

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

将 ActiveMQ 置于两者之间通常是实现 HA、负载平衡和使解决方案具有弹性的一种非常好的方法。根据您对机器等的特定设置。ActiveMQ 可以通过多种方式帮助解决 HA 问题。

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

于 2012-07-30T22:40:42.303 回答