使用:
导入依赖:
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.4.0.RELEASE</version> </dependency>
1.消费者:
/** * 消费者 * */ public class Foo { //具体执行业务的方法 public void listen(String foo) { System.out.println("消费者: " + foo); } }
2.生产者:
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringMain { public static void main(final String... args) throws Exception { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext( "classpath:spring/rabbitmq-context.xml"); //RabbitMQ模板 RabbitTemplate template = ctx.getBean(RabbitTemplate.class); //发送消息 template.convertAndSend("Hello, world!"); Thread.sleep(1000);// 休眠1秒 ctx.destroy(); //容器销毁 } }
3.配置文件:
3.1、定义连接工厂
<!-- 定义RabbitMQ的连接工厂 --> <rabbit:connection-factory id="connectionFactory" host="127.0.0.1" port="5672" username="kaola" password="kaola" virtual-host="/kaola" />
3.2、定义模板
<!-- 定义Rabbit模板,指定连接工厂以及定义exchange --> <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="fanoutExchange" />
3.3、定义队列、交换机、以及完成队列和交换机的绑定
<!-- 定义队列,自动声明 --> <rabbit:queue name="myQueue" auto-declare="true"/> <!-- 定义交换器,自动声明 --> <rabbit:fanout-exchange name="fanoutExchange" auto-declare="true"> <rabbit:bindings> <rabbit:binding queue="myQueue"/> </rabbit:bindings> </rabbit:fanout-exchange>
3.3.1、另一种模板及交换机的绑定
<rabbit:template id="amqpTemplate" connection- factory="connectionFactory" exchange="myExchange"routing-key="foo.bar" /> <rabbit:topic-exchange name="myExchange"> <rabbit:bindings> <rabbit:binding queue="myQueue" pattern="foo.*" /> </rabbit:bindings> </rabbit:topic-exchange>
3.4、定义监听
<!-- 队列监听 --> <rabbit:listener-container connection-factory="connectionFactory"> <rabbit:listener ref="foo" method="listen" queue-names="myQueue" /> </rabbit:listener-container> <bean id="foo" class="cn.kaola.rabbitmq.spring.Foo" />
3.5、定义管理,用于管理队列、交换机等:
<!-- MQ的管理,包括队列、交换器等 --> <rabbit:admin connection-factory="connectionFactory" />
以上配置完整版本:
<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/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.4.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"> <!-- 定义RabbitMQ的连接工厂 --> <rabbit:connection-factory id="connectionFactory" host="127.0.0.1" port="5672" username="kaola" password="kaola" virtual-host="kaola" /> <!-- 定义Rabbit模板,指定连接工厂以及定义exchange --> <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="fanoutExchange" /> <!-- MQ的管理,包括队列、交换器等 --> <rabbit:admin connection-factory="connectionFactory" /> <!-- 定义队列,自动声明 --> <rabbit:queue name="myQueue" auto-declare="true"/> <!-- 定义交换器,自动声明 --> <rabbit:fanout-exchange name="fanoutExchange" auto-declare="true"> <rabbit:bindings> <rabbit:binding queue="myQueue"/> </rabbit:bindings> </rabbit:fanout-exchange> <!-- 队列监听 --> <rabbit:listener-container connection-factory="connectionFactory"> <rabbit:listener ref="foo" method="listen" queue-names="myQueue" /> </rabbit:listener-container> <bean id="foo" class="cn.kaola.rabbitmq.spring.Foo" /> </beans>
相关推荐
6. `rabbitmq-client.jar`:这是 RabbitMQ 的 Java 客户端库,提供了与 RabbitMQ 服务器通信所需的所有 API 和工具,如创建连接、通道、发布/接收消息等。 7. `org.springframework.aop-3.1.1.RELEASE.jar`:Spring...
1. **Spring AMQP**: Spring AMQP是Spring框架的一个扩展,它提供了一种抽象层来简化与Advanced Message Queuing Protocol (AMQP)兼容的消息代理(如RabbitMQ)的交互。这个库允许开发者以声明式的方式定义消息的...
总结来说,Spring Cloud Config 和 Spring Cloud Bus AMQP 的组合,借助于RabbitMQ,为我们提供了一个强大的分布式配置管理和动态更新机制。通过这种解决方案,我们可以高效地管理大规模微服务集群的配置,提高系统...
在`rabbitmq-spring-amqp`压缩包中,可能包含了一个示例项目,该项目展示了如何配置和使用Spring AMQP来实现RabbitMQ的路由功能。通过阅读源代码,你可以了解到具体的XML配置或Java配置方式,以及如何在生产者和消费...
在本主题"rabbitmq学习11:基于rabbitmq和spring-amqp的远程接口调用"中,我们将深入探讨如何使用RabbitMQ作为消息中间件,结合Spring-AMQP库实现RPC模式。 RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP...
在`spring-amqp`模块中,我们可以看到Spring AMQP的主要实现类和接口,包括RabbitTemplate、AmqpAdmin、MessageListenerContainer等。通过阅读这些源码,你可以深入理解Spring AMQP的工作原理,比如它如何创建和关闭...
本示例“spring-cloud-steam-rabbitmq-demo”将探讨如何使用Spring Cloud Stream与RabbitMQ进行集成,以构建一个高效、可靠的分布式系统。 Spring Cloud Stream 是一个框架,用于构建可复用的、松耦合的服务,这些...
将RabbitMQ与Spring整合,可以方便地在Spring应用中使用消息队列,实现异步通信和任务调度。 本实例主要介绍如何在Spring应用中集成RabbitMQ,构建一个完整的消息传递系统。首先,你需要确保已经安装了RabbitMQ...
3. **RabbitMQ**: RabbitMQ是一个流行的开源消息代理,它实现了AMQP协议。Spring AMQP通常与RabbitMQ结合使用,为应用程序提供消息队列服务。 4. **Message Broker**: 消息代理(如RabbitMQ)作为中心节点,接收、...
标题中的“rabbitmq学习10:使用spring-amqp发送消息及异步接收消息”表明了本次讨论的主题,即如何在Spring框架中利用Spring AMQP组件与RabbitMQ进行交互,实现消息的发送和异步接收。RabbitMQ是一个开源的消息代理...
spring.rabbitmq.host=your-rabbitmq-host spring.rabbitmq.port=your-rabbitmq-port spring.rabbitmq.username=your-username spring.rabbitmq.password=your-password ``` 或者使用YAML格式: ```yaml # ...
SpringBoot与RabbitMQ结合使用AMQP协议是现代企业级应用程序中常见的消息中间件解决方案。本文将深入探讨SpringBoot如何集成RabbitMQ以及AMQP协议的基础知识,旨在帮助开发者理解和应用这一技术栈。 首先,...
《Spring AMQP:Java消息驱动的...总结,Spring AMQP为Java开发者提供了一套完整的工具集,便于在项目中实现AMQP消息队列的功能。通过理解和熟练使用Spring AMQP,开发者可以构建更高效、可扩展且健壮的分布式系统。
RabbitMQ 是一个开源的消息队列系统,遵循 Advanced Message Queuing Protocol (AMQP) 协议,用于在分布式系统中实现可靠的消息传递。将 Spring Boot 与 RabbitMQ 结合,可以有效地实现异步处理、解耦系统组件,提高...
在压缩包文件名称列表中的"shabaga-amqp-rabbitmq-master"可能包含了这个项目的源代码,你可以通过查看源码了解具体实现,包括如何配置Spring AMQP,如何定义消息的路由,以及如何处理消息的生产和消费。这可能是...
这个指南将引导你建立一个RabbitMQ AMQP服务器发布和订阅消息的过程。 声明 可以使用本人阿里云安装好的RabbitMQ服务器 host:http://120.27.114.229 username:root password:root port:5672 web management: ...
标题《Spring AMQP Reference》所涵盖的知识点主要围绕Spring框架提供的AMQP(Advanced Message Queuing Protocol)消息传递抽象,以及如何在Java应用中利用Spring AMQP进行消息的发送与接收。以下是详细的知识点...
使用Spring-rabbit,开发者可以轻松地在Spring应用中发送和接收消息,实现消息驱动的架构。它包括了模板(Template)用于发送消息,以及监听器容器(Listener Container)来处理接收的消息。此外,Spring-rabbit还...
在这个实例中,我们将探讨如何通过Spring AMQP模块来生产和消费消息,以及如何利用RabbitMQ实现日志系统和JSON数据的对接,并讨论自定义确认消息的重要性。 首先,让我们深入了解Spring AMQP。Spring AMQP是Spring...