`
李大宝
  • 浏览: 14407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring-AMQP之RabbitMQ实现

 
阅读更多


 

使用:

导入依赖:

 

<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>

 

 

 

  • 大小: 20 KB
分享到:
评论

相关推荐

    spring-amqp 相关jar

    6. `rabbitmq-client.jar`:这是 RabbitMQ 的 Java 客户端库,提供了与 RabbitMQ 服务器通信所需的所有 API 和工具,如创建连接、通道、发布/接收消息等。 7. `org.springframework.aop-3.1.1.RELEASE.jar`:Spring...

    spring-amqp,spring-retry,spring-rabbit

    1. **Spring AMQP**: Spring AMQP是Spring框架的一个扩展,它提供了一种抽象层来简化与Advanced Message Queuing Protocol (AMQP)兼容的消息代理(如RabbitMQ)的交互。这个库允许开发者以声明式的方式定义消息的...

    spring-cloud-config + spring-cloud-bus-amqp实现分布式集群配置动态更新

    总结来说,Spring Cloud Config 和 Spring Cloud Bus AMQP 的组合,借助于RabbitMQ,为我们提供了一个强大的分布式配置管理和动态更新机制。通过这种解决方案,我们可以高效地管理大规模微服务集群的配置,提高系统...

    spring-amqp 1.5.3源码

    在`spring-amqp`模块中,我们可以看到Spring AMQP的主要实现类和接口,包括RabbitTemplate、AmqpAdmin、MessageListenerContainer等。通过阅读这些源码,你可以深入理解Spring AMQP的工作原理,比如它如何创建和关闭...

    rabbitmq 路由spring-amqp实现

    在`rabbitmq-spring-amqp`压缩包中,可能包含了一个示例项目,该项目展示了如何配置和使用Spring AMQP来实现RabbitMQ的路由功能。通过阅读源代码,你可以了解到具体的XML配置或Java配置方式,以及如何在生产者和消费...

    rabbitmq学习11:基于rabbitmq和spring-amqp的远程接口调用

    在本主题"rabbitmq学习11:基于rabbitmq和spring-amqp的远程接口调用"中,我们将深入探讨如何使用RabbitMQ作为消息中间件,结合Spring-AMQP库实现RPC模式。 RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP...

    spring-cloud-steam-rabbitmq-demo.zip

    本示例“spring-cloud-steam-rabbitmq-demo”将探讨如何使用Spring Cloud Stream与RabbitMQ进行集成,以构建一个高效、可靠的分布式系统。 Spring Cloud Stream 是一个框架,用于构建可复用的、松耦合的服务,这些...

    RabbitMq与Spring整合实例

    将RabbitMQ与Spring整合,可以方便地在Spring应用中使用消息队列,实现异步通信和任务调度。 本实例主要介绍如何在Spring应用中集成RabbitMQ,构建一个完整的消息传递系统。首先,你需要确保已经安装了RabbitMQ...

    spring-amqp-1.2.2.RELEASE.zip

    3. **RabbitMQ**: RabbitMQ是一个流行的开源消息代理,它实现了AMQP协议。Spring AMQP通常与RabbitMQ结合使用,为应用程序提供消息队列服务。 4. **Message Broker**: 消息代理(如RabbitMQ)作为中心节点,接收、...

    rabbitmq学习10:使用spring-amqp发送消息及异步接收消息

    标题中的“rabbitmq学习10:使用spring-amqp发送消息及异步接收消息”表明了本次讨论的主题,即如何在Spring框架中利用Spring AMQP组件与RabbitMQ进行交互,实现消息的发送和异步接收。RabbitMQ是一个开源的消息代理...

    spring-boot-mq-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协议是现代企业级应用程序中常见的消息中间件解决方案。本文将深入探讨SpringBoot如何集成RabbitMQ以及AMQP协议的基础知识,旨在帮助开发者理解和应用这一技术栈。 首先,...

    spring-amqp文档.zip

    《Spring AMQP:Java消息驱动的...总结,Spring AMQP为Java开发者提供了一套完整的工具集,便于在项目中实现AMQP消息队列的功能。通过理解和熟练使用Spring AMQP,开发者可以构建更高效、可扩展且健壮的分布式系统。

    spring-boot集成RabbitMQ

    RabbitMQ 是一个开源的消息队列系统,遵循 Advanced Message Queuing Protocol (AMQP) 协议,用于在分布式系统中实现可靠的消息传递。将 Spring Boot 与 RabbitMQ 结合,可以有效地实现异步处理、解耦系统组件,提高...

    shabaga-amqp-rabbitmq

    在压缩包文件名称列表中的"shabaga-amqp-rabbitmq-master"可能包含了这个项目的源代码,你可以通过查看源码了解具体实现,包括如何配置Spring AMQP,如何定义消息的路由,以及如何处理消息的生产和消费。这可能是...

    SpringBoot-RabbitMQ:RabbitMQ为异步消息处理提出了一个很好的解决方案,它是一个非常好用的消息中间件,主要用于中间件的解压缩,同时,Spring Boot为RabbitMQ提供了支持,Spring Boot为兔子准备了spring-boot-starter-amqp,spring-rabbit支持AMQP(即高级消息队列协议,高级消息协议,是应用层协议的一个开放标准),并且为兔子模板和兔子MQ提供了自动配置选项

    这个指南将引导你建立一个RabbitMQ AMQP服务器发布和订阅消息的过程。 声明 可以使用本人阿里云安装好的RabbitMQ服务器 host:http://120.27.114.229 username:root password:root port:5672 web management: ...

    spring-amqp-reference.pdf

    标题《Spring AMQP Reference》所涵盖的知识点主要围绕Spring框架提供的AMQP(Advanced Message Queuing Protocol)消息传递抽象,以及如何在Java应用中利用Spring AMQP进行消息的发送与接收。以下是详细的知识点...

    RabbitMQ-3.4.1安装文件+Spring-rabbit+RabbitMQ-3.4.1安装手册

    使用Spring-rabbit,开发者可以轻松地在Spring应用中发送和接收消息,实现消息驱动的架构。它包括了模板(Template)用于发送消息,以及监听器容器(Listener Container)来处理接收的消息。此外,Spring-rabbit还...

    spring-amqp.zip

    在这个实例中,我们将探讨如何通过Spring AMQP模块来生产和消费消息,以及如何利用RabbitMQ实现日志系统和JSON数据的对接,并讨论自定义确认消息的重要性。 首先,让我们深入了解Spring AMQP。Spring AMQP是Spring...

Global site tag (gtag.js) - Google Analytics