【问题标题】:Spring-Amqp and ApolloSpring-Amqp 和 Apollo
【发布时间】:2015-01-31 03:30:31
【问题描述】:
我将 Spring-AMQP 库与 RabbitMQ 一起用于生产。我想编写一些可以“干净”工作的测试,并且我正在考虑使用嵌入式代理并模拟响应。我知道我无法嵌入 Rabbit,但想知道 Spring AMQP 是否可以与 Apollo 或其他可以在 JVM 中工作的代理一起使用。
我可以只发布和订阅,并在需要时使用供应商特定的代码来设置队列。
谢谢!
【问题讨论】:
标签:
java
spring
rabbitmq
spring-amqp
apollo
【解决方案1】:
没有;虽然有一个通用的抽象(在spring-amqp 项目中),但目前只有 RabbitMQ 的具体实现(spring-rabbit)。
由于 AMQP 是一种有线协议,您可能可以将 Spring AMQP 下的 rabbit 客户端与其他代理一起使用,但前提是它(代理)支持相同的协议版本。 Apollo 是 AMQP 1.0,与 RabbitMQ 遵循的版本(0-9-1)完全不同。
对于框架本身,我们尽可能使用Mockito 模拟兔子amqp-client。对于模拟太难的更复杂的测试以及集成测试,如果localhost 上没有代理,我们使用 JUnit @Rule (BrokerRunning) 跳过测试。