RabbitMQ进阶教程
RabbitMQ入门教程
- RabbitMQ 简介
- RabbitMQ 环境配置-基于linux
- RabbitMQ 环境配置-基于windows 10 x64
- RabbitMQ 插件管理
- RabbitMQ 用户管理
- RabbitMQ vhost管理
- RabbitMQ 简单队列
- RabbitMQ Work模式消息队列
- RabbitMQ 消息确认方式
- RabbitMQ 三种Exchange(fanout,direct,topic)模式
- RabbitMQ 发布订阅模式(Publish、Subscribe)
- RabbitMQ 路由模式(Routing)-使用 direct Exchange
- RabbitMQ topic Exchange使用
开源项目
知识点
相关文章
更多最近更新
更多RabbitMQ 与Spring整合
2019-03-06 22:41|来源: 网路
添加spring与rabbitmq整合的依赖
<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.6.0.RELEASE</version> </dependency>
整合spring配置文件如下:
<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="test" password="test" virtual-host="/testvhost" /> <!-- 定义Rabbit模板,指定连接工厂以及定义exchange --> <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="fanoutExchange" /> <!-- <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="fanoutExchange" routing-key="foo.bar" /> --> <!-- 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:topic-exchange name="myExchange"> <rabbit:bindings> <rabbit:binding queue="myQueue" pattern="foo.*" /> </rabbit:bindings> </rabbit:topic-exchange> --> <!-- 队列监听 --> <rabbit:listener-container connection-factory="connectionFactory"> <rabbit:listener ref="foo" method="listen" queue-names="myQueue" /> </rabbit:listener-container> <bean id="foo" class="com._656463.rabbitmq.vo.Foo" /> </beans>
生产者
package com._656463.rabbitmq.test; import org.junit.Test; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by hadoop on 16-6-29. */ public class SpringTest { @Test public void test() throws InterruptedException { 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(); //容器销毁 } }
消费者
package com._656463.rabbitmq.vo; /** * 消费者 */ public class Foo { //具体执行业务的方法 public void listen(String foo) { System.out.println("消费者: " + foo); } }
书生整理于网络
相关问答
更多-
Spring整合RabbitMQ 一直收到重复消息怎么处理[2023-11-17]
收到重复消息的可能情况有如下几点 发送方一条消息发送了多次。 接收到消息后,没有正确通知rabbitmq消息已被消费,导致消息仍然处于队列中,所以被再次发送。 请检查上述两点,希望能够帮到你。 -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2022-02-09]
收到重复消息的可能情况有如下几点 发送方一条消息发送了多次。 接收到消息后,没有正确通知rabbitmq消息已被消费,导致消息仍然处于队列中,所以被再次发送。 -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2022-04-23]
下面是RabbitMQ的消息确认机制:“为了确保消息不会丢失,RabbitMQ支持消息确认机制。客户端在接受到消息并处理完后,可以发送一个ack消息给RabbitMQ,告诉它该消息可以安全的删除了。假如客户端在发送ack之前意外死掉了,那么RabbitMQ会将消息投.. -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2022-05-06]
收到重复消息的可能情况有如下几点 发送方一条消息发送了多次。 接收到消息后,没有正确通知rabbitmq消息已被消费,导致消息仍然处于队列中,所以被再次发送。 请检查上述两点,希望能够帮到你。 -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2022-03-19]
监听的代码改成这样试试 public class RabbitMqListener implements MessageListener { @Override public void onMessage(Message message) { try { String str = new String(message.getBody()); // TODO 接受消息 System.out.println(message.getMessageProperties().getMessageId()); Syst ... -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2023-10-09]
下面是RabbitMQ的消息确认机制:“为了确保消息不会丢失,RabbitMQ支持消息确认机制。客户端在接受到消息并处理完后,可以发送一个ack消息给RabbitMQ,告诉它该消息可以安全的删除了。假如客户端在发送ack之前意外死掉了,那么RabbitMQ会将消息投递到下一个consumer客户端。如果有多个consumer客户端,RabbitMQ在投递消息时是轮询的。RabbitMQ如何判断客户端死掉了?唯一根据是客户端连接是否断开。这里没有超时机制,也就是说客户端可以处理一个消息很长时间,只要没断开连接 ... -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2021-09-24]
收到重复消息的可能情况有如下几点 发送方一条消息发送了多次。 接收到消息后,没有正确通知rabbitmq消息已被消费,导致消息仍然处于队列中,所以被再次发送。 请检查上述两点,希望能够帮到你。 -
Spring整合RabbitMQ 一直收到重复消息怎么处理[2022-02-23]
1. 需要“消息延迟”功能 这对我们来说是很重要的业务需求。当顾客订了一个服务,首先我们会发送描述相信指令的短信,然后我们会在两分钟后发送第二条描述详情的短信,而不是两条一起发送。我们希望通过这样,留给用户阅读的时间(每次间隔2分钟) -
rabbitmq的work模式怎么整合到spring中[2022-03-11]
abbitMQ主要有三种交换器:direct、fanout、topic direct就是一对一传输 fanout就是匹配传输 topic就是主题分发传输 还是看代码吧 maven构建:pom.xml [html] view plain copy您可以使用以下一项或多项功能查找所有信息 命令行工具rabbitmqctl rabbitmq http api rabbitmq管理(web ui) There is a library to get information from rabbitmq http api https://github.com/rabbitmq/hop