我们有兴趣听听ActiveMQ与RabbitMQ和ZeroMQ的优缺点.还欢迎有关任何其他有趣的消息队列的信息.
我在activemq配置中有这个
<sslContext>
<sslContext keyStore="file:/home/alex/work/amq/broker.ks"
keyStorePassword="password" trustStore="file:${activemq.base}/conf/broker.ts"
trustStorePassword="password"/>
</sslContext>
Run Code Online (Sandbox Code Playgroud)
我有一对x509证书和一个密钥文件
如何导入这两个用于ssl和ssl + stomp连接器?我可以谷歌的所有例子总是自己生成密钥,但我已经有了密钥.
我试过了
keytool -import -keystore ./broker.ks -file mycert.crt
Run Code Online (Sandbox Code Playgroud)
但这只导入证书而不是密钥文件并导致结果
__CODE__
我尝试连接证书和密钥但得到了相同的结果
如何导入密钥?
我想知道JMS队列和JMS主题之间的区别.
它说,从ActiveMQ页面
话题
在JMS中,Topic实现了发布和订阅语义.当您发布消息时,它会发送给所有感兴趣的订阅者 - 因此,零到多订阅者将收到该消息的副本.只有在经纪人收到消息时拥有有效订阅的订阅者才能获得该消息的副本.
队列
JMS队列实现负载均衡器语义.一个消费者将收到一条消息.如果在发送消息时没有可用的消费者,则将保留消费者,直到有消费者可以处理消息为止.如果消费者收到消息并且在关闭之前没有确认消息,那么该消息将被重新传递给另一个消费者.队列可以让许多消费者在可用消费者之间对消息进行负载平衡.
我希望有一个"东西",它将以与ActiveMQ代理接收消息的顺序相同的顺序向每个订阅者发送消息的副本.
有什么想法吗?
我之前没有任何使用*MQ的经验,而且我希望通常能够构建有关JMS和消息队列的知识.这样,我想知道我是应该从ActiveMQ开始,还是只是"忽略"它,然后开始自学阿波罗.Apollo是否像ActiveMQ一样功能齐全?它是否实现了JMS 2.0(我看到ActiveMQ卡在1.1中)?我会遗漏一些非常重要的东西吗?
另外,Kafka与这两种解决方案相比如何?
我是新来的消息和想知道的区别ActiveMQ
,Mule
,ServiceMix
和Camel
任何人都知道这些产品是如何不同的?
提前致谢 !
编辑:也想知道任何好的地方/资源来学习这些东西.
java messaging activemq-classic apache-camel apache-servicemix
在我的JMS应用程序上,我们在Producers上使用临时队列,以便能够从Consumer应用程序接收回复.
我在这个主题中提到的完全相同的问题:http://activemq.2283324.n4.nabble.com/jira-Created-AMQ-3336-Temporary-Destination-errors-on-HA-failover-in -broker-网络与故障转移-TT-td3551034.html#a3612738
每当我在网络中重新启动一个任意代理时,在尝试将回复发送到临时队列时,我在使用者应用程序日志中收到了许多这样的错误:
javax.jms.InvalidDestinationException:
Cannot publish to a deleted Destination: temp-queue://ID:...
Run Code Online (Sandbox Code Playgroud)
然后我看到加里在那里建议使用的回应
jms.watchTopicAdvisories=false
Run Code Online (Sandbox Code Playgroud)
作为客户端的URL参数brokerURL
.我使用此附加参数立即更改了客户端代理URL.但是现在,当我在网络中重新启动我的代理进行此故障转移测试时,我发现这样的错误:
javax.jms.JMSException:
The destination temp-queue:
//ID:client.host-65070-1308610734958-2:1:1 does not exist.
Run Code Online (Sandbox Code Playgroud)
我使用的是ActiveMQ 5.5版本.我的客户端代理URL如下所示:
failover:(tcp://amq-host1:61616,tcp://amq-host2.tred.aol.com:61616,tcp://amq-host3:61616,tcp://amq-host4:61616)?jms.useAsyncSend=true&timeout=5000&jms.watchTopicAdvisories=false
Run Code Online (Sandbox Code Playgroud)
另外,这是我的4个代理之一的activemq配置XML: amq1.xml
有人可以在这里查看这个问题并建议我在这个设置中犯了什么错误.
为了进一步澄清我在代码中如何进行请求 - 响应:
我目前正在使用ActiveMQ来满足我的消息传递需求; 除了几个db故障之外,它运行良好.但是,我至少考虑尝试使用RabbitMQ.但在此之前,我想了解以下内容:
JmsTemplate
并使用DefaultMessageListener
bean将队列连接到各自的处理程序.我可以用RabbitMQ做同样的事情吗?在我的团队工作中,我们使用IBM MQ技术进行跨应用程序通信.我最近看过Hacker News和其他关于RabbitMQ等其他MQ技术的地方.我对它是什么有一个基本的了解(一个常见的检查区域来放置和获取消息),但我想知道它究竟擅长什么?我怎么知道我想在哪里使用它以及何时使用它?为什么不坚持使用更基本的进程间消息传递形式?
我将很感激关于两个消息系统中的哪一个的一般指示和意见
activemq-classic ×10
jms ×6
java ×4
rabbitmq ×3
amqp ×1
apache-camel ×1
apache-kafka ×1
apollo ×1
hornetq ×1
ibm-mq ×1
jboss ×1
jks ×1
messaging ×1
ssl ×1
zeromq ×1