【发布时间】:2021-02-23 16:55:25
【问题描述】:
我们正在使用 Spring Boot 和 Apache Camel 开发一个应用程序,该应用程序从 ActiveMQ Artemis 读取消息,进行一些转换,然后将其发送到 ActiveMQ Artemis。我们的应用程序在本地 JBoss EAP 7.2.0 中部署为 war 文件。源应用程序和目标应用程序都远离我们的应用程序,它们也部署在 JBoss EAP 7.2.0 上。 Camel 连接的远程队列是 ActiveMQ Artemis,它是在 JBoss 中创建并使用 http-remoting 协议连接的。这些设置在每个应用程序只有一个节点时有效。
现在我们将源应用程序和目标应用程序分别设置为 3 个节点(即它们将部署在多个 JBoss 服务器中)。为了访问源应用程序和目标应用程序的前端,我们通过负载均衡器配置和访问它们。
我们可以将负载均衡器配置为从 Camel 层访问源代理和目标代理吗?将有 3 个源代理和 3 个目标代理。或者在这种情况下集群代理是唯一的选择吗?
我们正在考虑队列之间的负载平衡,而不是集群。假设我们有三个队列q1、q2 和q3,对应的代理为b1、b2 和b3。我将在 Camel 层中配置负载均衡器 url,例如 http-remoting://<load-balancer-url>:<port>(就像我们在负载均衡 HTTP API 请求时所做的那样)。任何传入的消息都会到达负载均衡器,负载均衡器将决定将消息路由到哪个队列。
【问题讨论】:
-
是的,贾斯汀
-
我们正在考虑队列之间的负载平衡而不是集群,我会告诉你负载平衡器产品,同时想检查该方法的可行性,因为我在互联网上找不到任何东西
-
不完全是这样,假设我们有三个队列 q1、q2 和 q3 以及相应的代理 b1、b2 和 b3。 J 将在骆驼层配置负载均衡器 url,例如 http-remoting://
:, (我们在负载均衡 API 请求时会做很多事情)。任何传入的消息都会到达负载均衡器,它会决定将消息路由到哪个队列 -
好的,谢谢,会查看并返回。是的,我想像 API 负载平衡器一样在消息级别平衡负载。
-
如果我从浏览器或应用程序中访问一个作为负载均衡器 URL 的 URL(HTTP 请求),该请求会到达负载均衡器,并且负载均衡策略(例如循环)会确定哪个后端服务请求会去。我指的是这件事。
标签: spring-boot apache-camel load-balancing activemq-artemis jboss-eap-7