在远程服务器(托管在 AWS 上)上设置和使用 ActiveMQ

Setting up and using ActiveMQ on remote server (hosted on AWS)

我们有一个带有服务器基础设施的 AWS 设置。

我不确定 AWS 是否是问题所在。

一个服务器是 运行 ActiveMQ 5.11。

我们有一个使用 Camel 和 Spring 来实例化 bean、队列和主题的应用程序。

在与 activeMQ 实例不同的服务器上启动应用程序时,我们不断收到消息说故障转移无法连接到 localhost:61616

为了暂时解决这个问题,我们在同一台服务器上安装了 activeMQ,这有点违背了这个想法。

spring 上下文非常普通,似乎开始了,从我在管理员中看到的内容来看。服务器通过初始上下文连接,但连接未维护并故障转移到本地主机安装。

我一直在研究我们必须做什么,但到目前为止我无法找到我想要的东西,我已经启用了服务器之间的所有流量,因此请确保没有任何端口被阻止,但无论我尝试过什么,连接似乎都会放弃远程服务器以支持本地主机。

我会继续努力,因为这是我们项目的主要要求。

得到这个工作,这对我来说是相当新的,所以我不确定我在做什么。

一个post有点帮助,但还是不是很清楚(主要是因为我们的工作防火墙阻止了cdns!)我现在找不到它!

模式是connectionId:queue|topic:identifying.words

我将 connectionId 设置为 activemq,它在任何地方都不存在。

我登录到管理员并创建了这个。

然后更新了下面的代码

logger.debug("Setup Context");
String transport = ApplicationProperties.getProperty("activemq.transport");
logger.info(transport);

// Not sure if this is a queue or not, but it is basically a name pointer.
String queue = ApplicationProperties.getProperty("activemq.queue");
logger.info(queue);         

ConnectionFactory connectionFactory = new activeMQConnectionFactory(transport);

camelContext.addComponent(queue,JmsComponent.jmsComponent(connectionFactory));

所以 fromto 的正确格式是:

String jmsLandingAreaReceipt = queue + ":topic:" + landingAreaReceipt;