1

我已经通过(不完全)ActiveMQ 并试图找出我的应用程序的部署模型。我对此有点困惑。我想使系统具有高可用性并决定使用以下内容。如果模型有任何错误或缺点,请纠正我。

部署模式

  1. 将分别在 M1 和 M2 中部署 Broker。
  2. 使用硬件负载均衡器(F5 或 Zeus)根据负载连接任一代理(M1 或 M2)。
  3. 想要使用负载均衡器 URL 发布消息。

我已经浏览了经纪人网络,我们需要保留一些拓扑结构。如果系统水平增长,我跌倒了,这会使系统更加复杂。所以最好有一个负载均衡器来分配负载。

问题

  1. 上述模型是否会向任何一个 Broker 发送消息?
  2. Consumer 将部署在 Tomcat 中(我认为我需要使用嵌入式代理来配置 M1 或 M2)。是否可以使用 M1 或 M2 的负载均衡器 URL?
  3. 是否可以让单个 Web 控制台管理员同时监控 M1 和 M2。
  4. 我们使用 Spring 的特性来消费消息是否有任何性能问题。

不好意思问了这么多问题。请帮助我更正部署模型。

4

2 回答 2

1

那里有很多问题。

首先要做的是从简单的开始。如果您的应用程序的负载仅由一个代理处理,请考虑通过主从设置来设置高可用性。为此,您不需要负载平衡器- ActiveMQ 客户端库具有故障转移机制,您可以在其中定义客户端应尝试连接的一组代理的 URL。

如果您正在考虑设置一个代理无法处理消息负载的基础架构(您可以使用性能模块测试代理的最大吞吐量),我建议您阅读代理网络如何工作。如果你真的走这条路,你真的需要了解 ActiveMQ。

在监控时,Web 控制台只能向您显示单个代理的内部结构。要了解围绕一组代理发生的情况,您需要一个监控工具,例如FuseHQ /Hyperic,它能够从多个盒子聚合 JMX 信息。

只要配置正确,Spring 的性能就不是问题(参见 参考资料 部分PooledConnectionFactory)。

我看到您是新用户,所以如果这回答了您的问题,请打勾。

于 2012-07-11T09:55:32.570 回答
1

我认为使用一些 activemq 服务器获得负载平衡的最佳方法是拥有一个: 代理网络和你的消费者/生产者(在你的 webapps 中)应该使用一些故障转移

因此,如果生产者 p1 在代理 1 上的队列上发送消息,则消费者 c1 可以读取代理 2 上的消息。

[编辑] 我从未尝试添加一些硬件平衡器而不是 activemq 协议故障转移。它应该有效:只需尝试并告诉我们。

3- 我认为不可能只有一个 Web 控制台来监控您的两个经纪人。

4-就我而言,我的 Spring 配置没有任何性能问题。

于 2012-07-04T11:22:31.310 回答