记录下载安装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

  2. 安装安装socat 插件

    yum install -y socat

  3. 安装rabbitMq:

    rpm -ivh rabbitmq-server-3.8.11-1.el7.noarch.rpm

  4. 查看是否启动(没有启动的)

    ps - ef | grep rabbitmq

  5. 后台启动mq

    rabbitmq-server -detached

  6. 再次查看是否启动 同4

  7. 关闭rabbitmq

    rabbitmqctl stop

  8. 查看插件

    rabbitmq-plugins list

  9. 下载桌面控制台

    rabbitmq-plugins enable rabbitmq_management

  10. win使用ip+端口登录控制台

  11. 因为默认的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 #查看用户列表

  12. 然后使用 admin 进行登录
    安装结束


创建springboot

前期准备工作 创建工程

改jdk版本

改包名

选几个常用的pom

起个项目名字

上面是名字下面是路径

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

yml

yaml 复制代码
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

创建配置类

java 复制代码
/**
 * 声明队列
 */
@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") ;
    }

}

生产者

java 复制代码
   @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;
    }

消费者

java 复制代码
 	//消费
    @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;
    }
相关推荐
小林想被监督学习18 分钟前
RabbitMQ 的7种工作模式
分布式·rabbitmq
州周24 分钟前
Ftp目录整个下载
linux·服务器·数据库
Jackey_Song_Odd25 分钟前
Ubuntu 24.04.1 解决部分中文字符(门、径)显示错误的问题
linux·ubuntu
kaixin_learn_qt_ing37 分钟前
Linux export命令
linux
余额不足1213840 分钟前
C语言基础十六:枚举、c语言中文件的读写操作
linux·c语言·算法
冷曦_sole44 分钟前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒1 小时前
Linux(二)_清理空间
linux·运维·服务器
云川之下1 小时前
【linux】 unshare -user -r /bin/bash命令详解
linux·bash·unshare
热心市民运维小孙1 小时前
Ubuntu重命名默认账户
linux·ubuntu·excel
Jackey_Song_Odd2 小时前
解决Ubuntu下无法装载 Windows D盘的问题
linux·ubuntu