使用AMQP可以实现路由方案,但不能使用JMS API

时间:2018-06-07 15:06:06

标签: jms amqp

我在面对JMS vs RabbitMQ AMQP时遇到了很大麻烦,需要你的帮助。

所以我的问题是 - 是否有一些场景可以使用AMQP 0.9.1协议解决但不能解决JMS问题?我在谈论路由和消息处理。可能你知道其他的东西。

我真的很喜欢RabbitMQ并希望选择它作为我们的微服务平台消息传递机制,但是我们的架构师说AMQP和JMS API没有什么特别之处。

这里的主要区别是AMQP是一个协议而JMS是一个API,因此使用AMQP我们可以独立于平台而不会被Java困住。

但我想知道JMS是否有一些杀手级特征和机会。

1 个答案:

答案 0 :(得分:0)

JMS只是一个API,而AMQP是一个协议。所以你的第一点是非常正确的,JMS(Providers)主要是java有界但是RabbitMQ不是。路由是您在典型的JMS提供程序中找不到的最强大的功能。 RabbitMQ易于扩展,性能远远优于市场上的JMS提供商。它建立在Erlang之上,它擅长内存利用率和扩展性。 (Whatapp的后端基于Erlang)。您可以向RabbitMQ添加各种开源插件,或者根据需要编写自己的插件以解决特定问题。说服你的建筑师的几点建议:

1:SCALING:扩展你喜欢的JMS服务器,然后为RabbitMQ做同样的事情

2:路由:在JMS服务器中实现路由逻辑需要多少工作量    RabbitMQ(可能是JMS你必须编写一些自定义代码)

3:性能:您可以使用JMS与多少并发连接    RabbitMQ并且还进行负载测试

4:PLUGINS:显示一些常见插件及其功能以添加其他插件    消息传递基础架构的功能

RabbitMQ提供了一个不错的基于Web的管理控制台。您可以从同一个控制台中找到所有连接和内存使用,队列深度和集群详细信息。他们会喜欢它,alson提供REST API以及CLI来做同样的事情。最后,RabbitMQ非常简单而且功能强大。

参考:http://www.wmrichards.com/amqp.pdf