SPRINGAMQP或RabbitMq Java API

时间:2015-09-07 20:58:27

标签: rabbitmq spring-amqp spring-rabbit spring-rabbitmq

我是RabbitMq和Spring AMQP的新手。 我正在从头开始构建一个新项目。这里是我们使用rabbit-Mq作为消息代理的组件之一。

在这个项目中,主要是所有开发都在Java中进行。我们通常将Spring用于某些组件。

现在,使用Erlang编写的rabbit-mq确实提供了一个干净的Java Api。还有spring amqp,它提供了一个很好的接口来支持松散耦合(通过AMQPTemplate等)。

我想到使用SpringAMQP的一个优点是,由于上面提到的松散耦合,明天如果我们必须使用AMQP的任何其他实现而不是rabbit-Mq(spring-rabbit)我不必更改我的代码。但正如我所看到的,今天的实施是针对兔子MQ并且除非特殊情况,我在这里看不到任何事情。我们应该在近乎可预见的未来使用rabbit-Mq,也不确定除了rabbitMq之外是否还有其他消息代理实现在spring amqp方面。

我认为缺点是我完全不了解RabbitMq提供的实际客户端API,因为Spring AMQP给出了抽象(除非我决定深入挖掘)。

在这种情况下,SPRING AMQP提供的传统rabbitMq Java API还有其他优势吗?

谢谢

2 个答案:

答案 0 :(得分:7)

春季AMQP坐在"顶部" RabbitMQ amqp-client java库,将熟悉的Spring编程模型带到RabbitMQ。

它提供了类似于Spring JMS用户习惯的功能,包括消息驱动的POJO和RabbitTemplate

与所有Spring *Template一样,RabbitTemplate消除样板代码,自动清理资源,参与现有的rabbitmq事务等,同时仍允许您下载到本机API,如果您有高级API不满意的高级需求(这种情况有点罕见)。因此,使用一个并不排除另一个。

披露:我是项目负责人。

答案 1 :(得分:1)

这不是其他人可以回答的问题。您和您的团队必须决定什么对您的团队最有利。

如果您的团队已经使用spring并且对此感到满意,请使用spring amqp提供程序。

如果你不想再被绑在春天,直接使用rabbitmq库。

选择一个并坚持下去。你会因此而变得富有成效,而且你选择另一个并不重要。