SPRINGAMQP或RabbitMq Java API

Ank*_*arg 2 rabbitmq spring-rabbit spring-amqp spring-rabbitmq

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

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

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

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

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

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

谢谢

Gar*_*ell 9

Spring AMQP位于RabbitMQ amqp-clientjava库的"顶部" ,并为RabbitMQ 带来了熟悉的Spring编程模型.

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

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

披露:我是项目负责人.


Der*_*ley 1

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

如果您的团队已经在使用 spring 并且熟悉它,请使用 spring amqp 提供程序。

如果你不想再受 spring 的束缚,可以直接使用rabbitmq 库。

选择一个并坚持下去。你会利用它变得富有成效,并且即使你没有选择另一个也没关系。