记录下载安装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;
    }
相关推荐
菜一头包19 分钟前
GNU,GDB,GCC,G++是什么?与其他编译器又有什么关系?
linux·c++·学习·gnu
结衣结衣.32 分钟前
【MySQL】数据类型
linux·数据库·sql·mysql
萑澈38 分钟前
深入探索 Unix 与 Linux:历史、内核及发行版
linux·服务器·unix
未来之窗软件服务1 小时前
数字人,磁盘不够No space left on device,修改python 执行环境-云GPU算力—未来之窗超算中心
linux·开发语言·python·数字人
爱学习的大牛1231 小时前
Linux 内核开发/测试工具对比 Windows 驱动验证工具 (Driver Verifier)
linux·测试工具·内核
杰肥啊1 小时前
【网络】通过Samba实现Window挂在Linux服务器路径
linux·服务器·网络
Yusei_05232 小时前
Linux 进程控制(自用)
linux·windows
终身学习基地2 小时前
第二篇:linux之Xshell使用及相关linux操作
linux·运维·microsoft
看山即山.2 小时前
【Linux】Linux 操作系统 - 05 , 软件包管理器和 vim 编辑器的使用 !
linux·编辑器·vim
周Echo周3 小时前
8、constexpr if、inline、类模版参数推导、lambda的this捕获---c++17
linux·开发语言·c++·算法·vim