【问题标题】:Apache ActiveMQ/TomEE help: How do I configure embedded brokers to store-and-forward?Apache ActiveMQ/TomEE 帮助:如何将嵌入式代理配置为存储和转发?
【发布时间】:2014-02-14 07:15:41
【问题描述】:

我们准备部署两个 JEE6 应用程序。应用程序的一部分将用完云并将消息生成到 JMS 队列。应用程序的另一半将在我们的服务器上运行并使用来自 JMS 队列的消息。应用程序的两个部分作为单独的 war 运行,并部署到 Apache TomEE 1.6(顺便说一句,这很棒),并使用最新的 JEE 和 CDI 规范编写。

消息持久性是我们主要关心的问题,但我们愿意假设云应用程序将有 100% 的正常运行时间并手动处理异常情况。本地应用会频繁重启,因为我们正在改进其设计并进行大量更改。

阅读 ActiveMQ 文档后,我很确定我们想要的是存储转发架构。他们的文档有点模糊的是属性http://activemq.apache.org/vm-transport-reference.html 是如何转化为创建这种架构的。

最后的挑战是本地代理需要非常快。它不仅会从远程队列中消费消息,它还会在本地写入和读取多个队列。幸运的是,本地代理上生成的任何队列都不需要在任何地方使用,而是在本地使用。消息必须是持久的。 ...如果我能做到这一点,我需要弄清楚如何运行双向 SSL!!

TLDR 是我的两件事:让我开始的示例 URL 配置,或者关于 ActiveMQ 中的哪些选项比我上面所说的更好的建议。谢谢!

【问题讨论】:

    标签: java jakarta-ee jms activemq apache-tomee


    【解决方案1】:

    经过 8 个小时的艰苦实验,事实证明这并不难。它只是记录在案或非常清楚......我在其中一台主机上启用了 ipv6,这导致了各种问题。

    在“云”服务器上,您将使用它

    <Resource
        id="MyJmsResourceAdapter"
        type="ActiveMQResourceAdapter">
        BrokerXmlConfig = broker:(tcp://0.0.0.0:61617,network:static:tcp://ground.server.com:61617)?persistent=false
        ServerUrl = vm://localhost 
    </Resource>
    

    在你的“地面”服务器上,

    <Resource
        id="MyJmsResourceAdapter"
        type="ActiveMQResourceAdapter">
        BrokerXmlConfig = broker:(tcp://0.0.0.0:61617,network:static:tcp://cloud.server.com:61617)?persistent=false
        ServerUrl = vm://localhost 
    </Resource>
    

    最后,在 Apache TomEE 的 JAVA_OPTS 中禁用 ipv6。您可以通过在 bin/ 中创建 setenv.sh 并输入以下内容来做到这一点:

    export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
    

    现在...搞清楚 SSL。希望这对某人有帮助!

    【讨论】:

    • 它有帮助。感谢分享!
    猜你喜欢
    • 1970-01-01
    • 2018-02-16
    • 2013-01-06
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2014-01-21
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多