记录下载安装rabbitmq(Linux) 并整合springboot--详细版(全)

下载rabbitmq(Linux):

erlang压缩包:
https://share.weiyun.com/TGhfV8eZ
rabbitMq-server压缩包:
https://share.weiyun.com/ZXbUwWHD
(因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器,所以在安装rabbitMQ之前,需要先安装Erlang;
先安装Erlang

  • 下载完成后吧俩文件上传到服务器 建议最好自己新建个文件夹扔进去

安装

  1. 安装 erlang
rpm -ivh erlang-23.2.3-1.el7.x86_64.rpm
  1. 安装安装socat 插件
 yum install -y socat
  1. 安装rabbitMq:
rpm -ivh rabbitmq-server-3.8.11-1.el7.noarch.rpm 
  1. 查看是否启动(没有启动的)
ps - ef | grep rabbitmq
  1. 后台启动mq
rabbitmq-server -detached
  1. 再次查看是否启动 同4
  2. 关闭rabbitmq
rabbitmqctl stop
  1. 查看插件
rabbitmq-plugins list
  1. 下载桌面控制台
rabbitmq-plugins enable rabbitmq_management
  1. win使用ip+端口登录控制台
    在这里插入图片描述

  2. 因为默认的guest账号只能本地登录 所以我们在创建一个管理员账号进行远程登录

rabbitmqctl add_user admin admin      #添加 admin 用户并设置密码
rabbitmqctl set_user_tags admin administrator        #添加 admin 用户为administrator角色
rabbitmqctl set_permissions -p "/" admin "." "." ".*"      #设置 admin 用户的权限,指定允许访问的vhost以及write/read
rabbitmqctl list_permissions -p /      #查看vhost(/)允许哪些用户访问
rabbitmqctl list_users      #查看用户列表
  1. 然后使用 admin 进行登录
    在这里插入图片描述安装结束

创建springboot

前期准备工作 创建工程
在这里插入图片描述

改jdk版本
在这里插入图片描述
改包名
在这里插入图片描述
选几个常用的pom

在这里插入图片描述
起个项目名字
上面是名字下面是路径
在这里插入图片描述
在这里插入图片描述

        <!--添加AMQP的启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

在这里插入图片描述

yml

server:
  port: 7000
logging:
  level:
    root: info
    com.joe: debug
spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://44.113.77.149:3306/db1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=GMT%2b8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    initialSize: 1
    minIdle: 3
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 30000
    validationQuery: select 'x'
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,slf4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    hikari:
      connection-test-query: select 1
      connection-timeout: 60000
      idle-timeout: 500000
      max-lifetime: 540000
      maximum-pool-size: 12
      minimum-idle: 10
      pool-name: GGLiliKariPool
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  thymeleaf:
    check-template: false
    check-template-location: false
  rabbitmq:
    host: 11.113.77.149
    port: 5672
    username: admin
    password: admin
mybatis:
  mapperLocations: classpath:com/joe/demo/mapper/*.xml
  type-aliases-package: com.joe.demo.entity # 实体类所在的位置
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

创建配置类

/**
 * 声明队列
 */
@Configuration
public class RabbitMQConfig {
   
    @Bean
    public Queue a(){
   
        return new Queue("a") ;
    }
    @Bean
    public Queue b(){
   
        return new Queue("b") ;
    }
    @Bean
    public Queue c(){
   
        return new Queue("c") ;
    }
    @Bean
    public Queue d(){
   
        return new Queue("d") ;
    }

}

生产者

   @Autowired
    private AmqpTemplate rabbitmqTemplate;
    //生产者
    @Override
    public String consumer() {
   
        String msg1  = "生产者1=============ccccccccccccccc";
        System.out.println(msg1);
        rabbitmqTemplate.convertAndSend("a",msg1);
        rabbitmqTemplate.convertAndSend("b",msg1+"加1");
        rabbitmqTemplate.convertAndSend("c",msg1+"加2");
        rabbitmqTemplate.convertAndSend("d",msg1+"加3");
        return null;
    }

消费者

 	//消费
    @RabbitListener(queues = "a")
    public String producer(String mag) {
   


        System.out.println("消费成功----------"+mag);
        return null;
    }
    //消费
    @RabbitListener(queues = "b")
    public String producer1(String mag) {
   
        System.out.println("消费成功----------"+mag);
        return null;
    }
    //消费
    @RabbitListener(queues = "c")
    public String producer2(String mag) {
   
        System.out.println("消费成功----------"+mag);
        return null;
    }
    //消费
    @RabbitListener(queues = "d")
    public String producer3(String mag) {
   
        System.out.println("消费成功----------"+mag);
        return null;
    }

相关推荐

  1. SpringBoot 注解超详解(整合详细版本)

    2024-01-17 02:58:02       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 02:58:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 02:58:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 02:58:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 02:58:02       20 阅读

热门阅读

  1. 爬虫的基本原理

    2024-01-17 02:58:02       39 阅读
  2. 基于opencv的直线检测(python&C++)

    2024-01-17 02:58:02       39 阅读
  3. 单片机学习记录(四)

    2024-01-17 02:58:02       42 阅读
  4. Python while循环实现猜字谜游戏

    2024-01-17 02:58:02       39 阅读
  5. 基于STM32F103C8T6单片机的1秒定时器设计与应用

    2024-01-17 02:58:02       35 阅读
  6. Git速查表

    2024-01-17 02:58:02       34 阅读
  7. MyBatis-Plus

    2024-01-17 02:58:02       27 阅读
  8. traceId:SkyWalking的traceId生成策略

    2024-01-17 02:58:02       33 阅读
  9. 原生js排他思想源码。

    2024-01-17 02:58:02       35 阅读
  10. Vue 3面试题

    2024-01-17 02:58:02       36 阅读