RabbitMQ与Spring的整合
标签(空格分隔): RabbitMQ
Spring已经对AMQP做了支持,目前只实现了对RabbitMQ的支持。
1、导入依赖
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
2、生产端的Spring配置
<!-- 定义RabbitMQ的连接工厂 -->
<rabbit:connection-factory id="connectionFactory"
host="${rabbit.host}" port="${rabbit.port}" username="${rabbit.username}"
password="${rabbit.passwd}" virtual-host="${rabbit.vhost}" />
<!-- MQ管理 -->
<rabbit:admin connection-factory="connectionFactory"/>
<!-- 定义交换机 -->
<rabbit:topic-exchange name="taotao-item-exchange" auto-declare="true" durable="true"/>
<!-- 定义模板 -->
<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory" exchange="taotao-item-exchange"/>
3、消费端的Spring配置
<!-- 定义RabbitMQ的连接工厂 -->
<rabbit:connection-factory id="connectionFactory"
host="${rabbit.host}" port="${rabbit.port}" username="${rabbit.username}"
password="${rabbit.passwd}" virtual-host="${rabbit.vhost}" />
<!-- MQ管理 -->
<rabbit:admin connection-factory="connectionFactory"/>
<rabbit:queue name="taotao-web-item-queue" auto-declare="true" durable="true"/>
<bean id="itemMqHandler" class="com.taotao.web.mq.handler.ItemMqHandler"/>
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="itemMqHandler" method="execute" queue-names="taotao-web-item-queue" />
</rabbit:listener-container>
4、在RabbitMQ路由和队列绑定