我们的一个application1正在使用具有以下配置activemq.broker.url = failover:(tcp://master:61616,tcp://slave:61616)?randomize=false
的activeMQ端点,在这种情况下,我们的application1正在产生事件,类似地,还有另一个application2的使用者指向同一组端点activemq.broker.url = failover:(tcp://master:61616,tcp://slave:61616)?randomize=false
的使用者可以使用事件,对其进行处理,并将其放回同一Broker1上的其他队列中。
上面的设置是多租户服务。
现在,我们想迁移到不同环境的amazonMQ 它是自己的基础kahaDB。我们如何实现迁移 不会失去活动?
如果我们使application1指向activemq.broker.url = failover:(tcp://master2:61616,tcp://slave2:61616)?randomize=false
的新broker2终结点,它将开始向amazonMQ的broker2发送消息。
类似地,如果我们在application2中进行更改,则谁正在使用事件并通过activemq.broker.url = failover:(tcp://master:61616,tcp://slave:61616,tcp://master2:61616,tcp://slave2:61616)?randomize=true
中继回给application1需要使用的代理。有了这个设置,我们就能产生准备由应用程序使用的事件。
出现问题:application2可以将事件发布回broker1 这是旧的端点
activemq.broker.url = failover:(tcp://master:61616,tcp://slave:61616)
,此事件将 永远不会被消耗掉。如何在不丢失任何事件的情况下实现迁移 亚马逊MQ?这是正确的方法还是在这里可以做什么?
答案 0 :(得分:0)
我们通过为AmazonMQ和activeMQ的单独使用者写信来解决此问题。稍后在应用程序启动期间将它们都注册。