记录下载安装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;
    }
相关推荐
爱编程的小金毛球球5 分钟前
-bash: /home/xxx/anaconda3/bin/conda: No such file or directory
linux·conda·bash
Biomamba生信基地2 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
好奇的菜鸟2 小时前
Spring Boot 启动时自动配置 RabbitMQ 交换机、队列和绑定关系
spring boot·rabbitmq
flying robot2 小时前
RPM的使用
linux
好奇的菜鸟3 小时前
RabbitMQ 通道(Channel)详解:方法使用、消息确认与拒绝
分布式·rabbitmq
黄小耶@3 小时前
python如何使用Rabbitmq
分布式·后端·python·rabbitmq
超级无敌暴龙战士(solider)3 小时前
如何保证RabbitMQ的可靠性传输
分布式·rabbitmq
小乖兽技术3 小时前
C++开发基础之使用librabbitmq库实现RabbitMQ消息队列通信
开发语言·c++·rabbitmq