SpringBoot 集成RabbitMQ

1、application.yml 配置

spring:rabbitmq:  host: localhost  port: 5672  listener:    simple:      acknowledge-mode: manual // 手动签发      prefetch: 1      retry:        enabled: true        initial-interval: 60000 # 第一次和第二次尝试发布或传递消息间隔: 1分钟        max-attempts: 8        max-interval: 7200000 # 最大重试时间间隔:2小时        multiplier: 2 # 应用于上一重试间隔的乘数
 

2、RabbitConfig

配置 交换机,队列,交换机与队列的绑定,消息监视容器:

@Configuration
@Data
public class RabbitMQConfig {

    final static String queueName = "spring-boot";

    @Bean
    Queue queue() {
        return new Queue(queueName, false);
    }

    @Bean
    TopicExchange exchange() {
        return new TopicExchange("spring-boot-exchange");
    }

    @Bean
    Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with(queueName);
    }

    @Bean
    SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        container.setQueueNames(queueName);
        container.setMessageListener(listenerAdapter);
        return container;
    }

    @Bean
    Receiver receiver() {
        return new Receiver();
    }
    @Bean
    MessageListenerAdapter listenerAdapter(Receiver receiver) {
        return new MessageListenerAdapter(receiver, "receiveMessage");
    }
}

3、生产者

@RestController
public class Test {
    @Autowired
    RabbitTemplate rabbitTemplate;

    @RequestMapping(value = "/test/{abc}",method = RequestMethod.GET)
    public String test(@PathVariable(value = "abc") String abc){
        rabbitTemplate.convertAndSend("spring-boot", abc + " from RabbitMQ!");
        return  "abc";
    }
}

4、消费者

public class Receiver {

    private CountDownLatch latch = new CountDownLatch(1);

    public void receiveMessage(String message) {
        System.out.println("Received <" + message + ">");
        latch.countDown();
    }

    public CountDownLatch getLatch() {
        return latch;
    }
}

--- 参见: https://www.jianshu.com/p/a5f7fce67803

原文地址:https://www.cnblogs.com/123-shen/p/12221760.html

时间: 2024-11-10 14:01:13

SpringBoot 集成RabbitMQ的相关文章

SpringBoot集成rabbitmq(一)

前言 Rabbitmq是一个开源的消息代理软件,是AMQP协议的实现.核心作用就是创建消息队列,异步发送和接收消息.通常用来在高并发中处理削峰填谷.延迟处理.解耦系统之间的强耦合.处理秒杀订单.  入门rabbitmq之前主要是想了解下秒杀排队订单入库后,异步通知客户端秒杀结果. 基础知识 1.基本概念(角色) 了解rabbitmq之前先要了解3个基本概念:生产者.消费者.代理(队列). rabbitmq在生产者和代理中间做了一层抽象.这样消息生产者和队列就没有直接联系,在中间加入了一层交换器(

Java SpringBoot集成RabbitMq实战和总结

目录 交换器.队列.绑定的声明 关于消息序列化 同一个队列多消费类型 注解将消息和消息头注入消费者方法 关于消费者确认 关于发送者确认模式 消费消息.死信队列和RetryTemplate RPC模式的消息(不常用) 关于消费模型 关于RabbitMq客户端的线程模型 在公司里一直在用RabbitMQ,由于api已经封装的很简单,关于RabbitMQ本身还有封装的实现没有了解,最近在看RabbitMQ实战这本书,结合网上的一些例子和spring文档,实现了RabbitMQ和spring的集成,对着

Spring-boot集成RabbitMQ踩过的坑

1.java.net.SocketException: socket closed 官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权 解决方法: rabbitmqctl set_permissions -p /${user_name} user_admin '.*' '.*' '.*' 2. An unexpected connection driver error occured 报错如下 [AMQP Connection 192.168.71.1

springboot集成RabbitMQ,Eclipse开发集成RabbitMq,IDEA集成RabbitMQ报错 socket close

java.net.SocketException: socket closed    at java.net.SocketInputStream.socketRead0(Native Method)    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)    at java.net.SocketInputStream.read(SocketInputStream.java:170)    at java.n

SpringBoot集成RabbitMQ(注解+手动确认)

1.pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.yml配置文件 spring: #MQ配置 rabbitmq: addresses: 127.0.0.1 port: 5672 username: adminmq passwo

springBoot(24):集成rabbitmq

注意:springboot支持的amqp规范的中间件只有rabbitmq 第一步:添加依赖 <!-- amqp --> <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 第二步:配置application.yml sp

SpringBoot集成Zipkin实现分布式全链路监控

目录 Zipkin 简介 Springboot 集成 Zipkin 安装启动 zipkin 版本说明 项目结构 工程端口分配 引入 Maven 依赖 配置文件.收集器的设置 编写 Controller 发送请求进行测试 Springboot 启动类 运行分析 核心概念 Zipkin 简介 Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency proble

springboot集成elk 一: springboot + Elasticsearch

1.ELK介绍 1> Elasticsearch是实时全文搜索和分析引擎, 提供搜集.分析.存储数据三大功能: 是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统. 2> Logstash是一个用来搜集.分析.过滤日志的工具. 它支持几乎任何类型的日志,包括系统日志.错误日志和自定义应用程序日志. 它可以从许多来源接收日志,这些来源包括 syslog.消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件.websockets和Elast

rabbitMQ第五篇:Spring集成RabbitMQ

前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.6.0.RELEASE</version> <