首页 > 其他分享 >SpringBoot+RabbitMQ实现消息订阅发送

SpringBoot+RabbitMQ实现消息订阅发送

时间:2022-12-09 13:24:05浏览次数:36  
标签:订阅 SpringBoot boot rabbitmq springframework import org RabbitMQ docker

RabbitMQ 安装 (docker)

  1. 拉取rabbitmq镜像文件
  # 未指定版本,拉取最新版本
  root# docker pull rabbitmq
  1. 启动镜像
  root# docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
  1. 配置rabbitmq插件
  # 配置rabbitmq web管理页面
  root# docker exec -it 容器id rabbitmq-plugins enable rabbitmq_management
  
  # 配置rabbitmq mqtt协议
  root# docker exec -it 容器id rabbitmq-plugins enable rabbitmq_mqtt

  # 如果我们需要浏览器通过websocket连接到rabbitmq,我们还需要启动rabbitmq_web_mqtt插件
  root# docker exec 容器id rabbitmq-plugins enable rabbitmq_web_mqtt

  # docker 查看已安装插件
  root# docker exec rabbitmq rabbitmq-plugins list
  1. 访问web管理页面
    浏览器输入:ip+15672

  2. 可能出现问题
    5.1 Stats in management UI are disabled on this node。

    • docker exec -it 容器id /bin/bash
    • cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf (true)
    • cd /etc/rabbitmq/conf.d/
    • echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf (将true修改为false)
    • docker restart 容器id

SpringBoot 配置

  1. 添加pom依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.12.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.3.12.RELEASE</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>2.3.12.RELEASE</version>
        </dependency>
  1. 添加yml配置
server:
  port: 32372
spring:
  application:
    name: spring-rabbitmq
  # rabbitmq 配置信息
  rabbitmq:
    host: 192.168.48.132
    port: 5672
    username: guest
    password: guest
  1. 生产者
package com.ao.springrabbitmq.service.producer;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class Producer {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void produce() {
        String message = "晚上加班";
        System.out.println("老板说:" + message);
        rabbitTemplate.convertAndSend("notice_queue", message);
    }
}
  1. 消费者
package com.ao.springrabbitmq.service.consumer;

import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class Consumer {

    @RabbitHandler
    @RabbitListener(queuesToDeclare = @Queue("notice_queue"))
    public void process(String message) {
        System.out.println("打工人收到通知:" + message);
    }
}
  1. 测试类
package com.ao.springrabbitmq;

import com.ao.springrabbitmq.service.producer.Producer;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class RabbitMQTests {

    @Autowired
    Producer producer;

    @Test
    public void amqpTest() throws InterruptedException {
        // 生产者发送消息
        producer.produce();
        Thread.sleep(1000);
    }
}

标签:订阅,SpringBoot,boot,rabbitmq,springframework,import,org,RabbitMQ,docker
From: https://www.cnblogs.com/zouxiaoao/p/16963079.html

相关文章

  • springboot集成kettle实现对接oracle数据
    简单记录一下springboot引用kettle对接数据第一步(这一步讲述了下载kettle、创建数据库连接、转换等,如果这一步会的可以略过,直接看第二步)先从kettle官网下载kettle,官网地......
  • 创建springboot过滤器
    springboot过滤器importorg.springframework.core.ParameterizedTypeReference;importorg.springframework.web.context.WebApplicationContext;importorg.springframewo......
  • springboot+mybatis+log4j日志sql输出和文件输出
    pom引入依赖:<dependency><!--排除spring-boot-starter-logging--><groupId>org.springframework.boot</groupId><artifactId>sprin......
  • Hello,SpringBoot
    什么是SpringBoot一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置,youcan"justrun",能迅速的开发web应用,几行代码开发......
  • RabbitMQ指南之一:"Hello World!"
    为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步、流量削锋、应用解耦的?网上已经有很多说明,我这里就不再说明了,读者可......
  • SpringBoot内置tomcat启动过程及原理
    1背景SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,......
  • RabbitMQ实战指南
    RbbitMQ作用:解耦冗余(存储)扩展性削峰可恢复性顺序保证缓冲异步通信RabbitMQ从最初就实现了一个特性:使用协议本身就可以对队列和交换器(Exchange)这样的资源进行配......
  • springboot中数据库批量新增InsertListMapper两种情况
    pom中mybatis的依赖包版本必须高点满足两种情况<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>4.......
  • SpringBoot统一日志管理
    Springboot中统一日志管理一、为什么要用日志?一般分为两个大类:操作日志和系统日志**操作日志:**用户在操作软件时记录下来的操作步骤,便于用户自己查看。主要针对的是用户。**......
  • SpringBoot中统一日志管理
    Springboot中统一日志管理一、为什么要用日志?一般分为两个大类:操作日志和系统日志**操作日志:**用户在操作软件时记录下来的操作步骤,便于用户自己查看。主要针对......