我在面对JMS vs RabbitMQ AMQP时遇到了很大麻烦,需要你的帮助。
所以我的问题是 - 是否有一些场景可以使用AMQP 0.9.1协议解决但不能用JMS解决?我在谈论路由和消息处理。也许你知道其他的东西。
我真的很喜欢RabbitMQ,并希望选择它作为我们的微服务平台消息传递机制,但是我们的架构师说AMQP和JMS API没有什么特别之处。
这里的主要区别是AMQP是一个协议而JMS是一个API,所以使用AMQP我们可以独立于平台而不会被Java困住。
但我想知道JMS是否有一些杀手级特征和机会。
JMS只是一个API,而AMQP是一个协议。所以你的第一点是非常正确的,JMS(Providers)主要是java有界但是RabbitMQ不是。路由是您在典型的JMS提供程序中找不到的最强大的功能。 RabbitMQ易于扩展,性能远远优于市场上的JMS提供商。它建立在Erlang之上,它擅长内存利用率和扩展性。 (Whatapp的后端基于Erlang)。您可以向RabbitMQ添加各种开源插件,或者根据需要编写自己的插件以解决特定问题。说服建筑师的几点建议:
1:缩放:缩放您喜欢的JMS服务器,然后对RabbitMQ执行相同的操作
2:路由:在JMS服务器和RabbitMQ中实现路由逻辑需要多少努力(可能是JMS,你必须编写一些自定义代码)
3:性能:您可以使用JMS与RabbitMQ建立多少并发连接,并进行负载测试
4:PLUGINS:显示一些常见的插件及其功能,以便为您的消息传递基础架构添加其他功能
RabbitMQ提供了一个很好的基于Web的管理控制台。您可以从同一个控制台中找到所有连接和内存使用,队列深度和集群详细信息。他们会喜欢它,alson提供REST API以及CLI来做同样的事情。最后,RabbitMQ非常简单而且功能强大。