使用Spring AMQP实现RabbitMQ高可用性

时间:2013-11-25 14:41:55

标签: spring rabbitmq amqp

我正在尝试在Spring中配置RabbitMQ集群,所以我遵循了Spring AMQP文档(http://docs.spring.io/spring-amqp/reference/html/amqp.html),但在添加地址时出错:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                    http://www.springframework.org/schema/rabbit
                    http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">

<rabbit:connection-factory id="connectionFactory" addresses="host1,host2" />

我在gradle中定义的依赖项:

compile group: 'org.springframework.amqp', name: 'spring-amqp', version:'1.2.0.RELEASE'
compile group: 'org.springframework.amqp', name: 'spring-rabbit', version:'1.2.0.RELEASE'

任何人都知道为什么会这样吗? 谢谢!

编辑: 我得到的错误是: cvc-complex-type.3.2.2:属性'addresses'不允许出现在元素'rabbit:connection-factory'中。 主机1&amp; host2是虚拟机的IP。

1 个答案:

答案 0 :(得分:3)

这是因为您在schemaLocation中为版本1.0声明了spring-rabbit XSD文件。只需改变:

http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd

http://www.springframework.org/schema/rabbit/spring-rabbit-1.2.xsd

以匹配你的春兔版本,它应该可以工作。