有人可以澄清ActiveMQ和ActiveMQ-Artemis之间的区别吗?从我在维基百科上的理解来看,ActiveMQ-Artemis本质上是ActiveMQ的继承者,但如果是这样,我不明白为什么Artemis被列为ActiveMQ的一个子项目。
此外,如果我查看 ActiveMQ 和 ActiveMQ-Artemis 的版本控制,我会发现版本完全不同。ActiveMQ 为 5.15,Artemis 为 2.2。
据我了解,Artemis 是一种更快、更新的实现,包括对 JMS 2.0 的支持。鉴于 MQ 平台的新安装和部署,是否应将 ActiveMQ 5.15 视为已弃用以代替 Artemis?
帮助我理解一些东西。我查看了几个企业应用程序架构,我注意到其中几个使用 Message Queue 服务,例如 ActiveMQ 或 RabbitMQ。我对消息队列服务器的作用有表面上的了解,但我真的不明白为什么我会选择构建一个使用它的应用程序基础设施,而不是标准的负载平衡技术,如 HAProxy 等。
两者之间的真正区别是什么?两者似乎都将流量和/或消息路由到订阅队列或池的节点。这些都有优点/缺点吗?
在 中activemq.log,我每 2 秒看到一次此异常:
2013-11-05 13:00:52,374 | DEBUG | Transport Connection to: tcp://127.0.0.1:37501 failed:
org.apache.activemq.transport.InactivityIOException:
Cannot send, channel has already failed: tcp://127.0.0.1:37501 | org.apache.activemq.broker.TransportConnection.Transport | Async Exception Handler
org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:37501
at org.apache.activemq.transport.AbstractInactivityMonitor.doOnewaySend(AbstractInactivityMonitor.java:282)
at org.apache.activemq.transport.AbstractInactivityMonitor.oneway(AbstractInactivityMonitor.java:271)
at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:85)
at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:104)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1312)
at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:838)
at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:873)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)
由于这个关键字InactivityIOException,我首先想到的是InactivityMonitor,但奇怪的是MaxInactivityDuration=30000:
2013-11-05 13:11:02,672 …Run Code Online (Sandbox Code Playgroud) 目的
目前办公室里有 100 多个系统,预计这个数字还会增加。所有系统都由 Puppet 管理。如果 Puppet 代码在 Puppet Master 上发生变化,需要在多个系统上实现,则通过sudo puppet agent -t在每个系统上执行手动运行 Puppet 。有时需要在 10 多个系统上实施更改。为了安全起见,我们的想法是使用 MCollective,即在所有系统上运行 puppet 一次,而不是在每个系统上运行 puppet。
试图
ActiveMQ的,MCollective服务器和MCollective客户端已经安装在戏梦人生。一旦mco ping运行,就可以找到Puppetmaster。安装完成后MCollective木偶代理和运行mco rpc puppet runonce木偶是在运行戏梦人生。
为了连接远程 mcollective-client,想法是必须安装并运行activemq和mcollective-client,以便通过发出mco ping.
/var/log/mcollective.log
INFO -- : activemq.rb:114:in `on_connecting' TCP Connection attempt 23 to stomp://mcollective@stomp1:6163
Run Code Online (Sandbox Code Playgroud)
/etc/activemq/activemq.xml
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/>
</transportConnectors>
</broker> …Run Code Online (Sandbox Code Playgroud)