我在谷歌上搜索了一些内容,想要了解它们之间的区别。我已经在一些项目中使用了RabbitMQ和ZeroMQ。知道JMS仍然存在并且人们在使用它,我开始想知道为什么?是有性能、架构或其他优势吗?我对JMS一无所知,但如果我理解正确,为什么有人会局限于Java特定的技术呢?
JMS和AMQP并不是可以相提并论的。JMS是一种API,而AMQP是一种协议。可以编写使用AMQP的JMS实现。确实有些人们这样做了。此外,还可以编写使用其他协议的JMS实现-当然,许多 人们 已经这样做了。JMS的目标是在所有这些不同的消息协议上放置一个统一的API。这使得程序员的生活更加轻松,他们可以学习一个API,然后有合理的机会使用任何他们遇到的消息队列。此外,标准API的存在使得JMS能够与其他标准进行交互。例如,在 ejb中,有一种叫做message-driven bean的东西,它是一个接收消息而不是方法调用的EJB,并使用JMS API来控制这个过程。