下载rabbitmq(Linux):
erlang压缩包:
https://share.weiyun.com/TGhfV8eZ
rabbitMq-server压缩包:
https://share.weiyun.com/ZXbUwWHD
(因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器,所以在安装rabbitMQ之前,需要先安装Erlang;
先安装Erlang
)
- 下载完成后吧俩文件上传到服务器 建议最好自己新建个文件夹扔进去
安装
- 安装 erlang
rpm -ivh erlang-23.2.3-1.el7.x86_64.rpm
- 安装安装socat 插件
yum install -y socat
- 安装rabbitMq:
rpm -ivh rabbitmq-server-3.8.11-1.el7.noarch.rpm
- 查看是否启动(没有启动的)
ps - ef | grep rabbitmq
- 后台启动mq
rabbitmq-server -detached
- 再次查看是否启动 同4
- 关闭rabbitmq
rabbitmqctl stop
- 查看插件
rabbitmq-plugins list
- 下载桌面控制台
rabbitmq-plugins enable rabbitmq_management
-
win使用ip+端口登录控制台
-
因为默认的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 #查看用户列表
- 然后使用 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: infocom.joe: debug
spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://44.113.77.149:3306/db1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=GMT%2b8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456initialSize: 1minIdle: 3maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 30000validationQuery: select 'x'testWhileIdle: truetestOnBorrow: falsetestOnReturn: false# 打开PSCache,并且指定每个连接上PSCache的大小poolPreparedStatements: truemaxPoolPreparedStatementPerConnectionSize: 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,slf4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000hikari:connection-test-query: select 1connection-timeout: 60000idle-timeout: 500000max-lifetime: 540000maximum-pool-size: 12minimum-idle: 10pool-name: GGLiliKariPooljackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8thymeleaf:check-template: falsecheck-template-location: falserabbitmq:host: 11.113.77.149port: 5672username: adminpassword: admin
mybatis:mapperLocations: classpath:com/joe/demo/mapper/*.xmltype-aliases-package: com.joe.demo.entity # 实体类所在的位置
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql
创建配置类
/*** 声明队列*/
@Configuration
public class RabbitMQConfig {@Beanpublic Queue a(){return new Queue("a") ;}@Beanpublic Queue b(){return new Queue("b") ;}@Beanpublic Queue c(){return new Queue("c") ;}@Beanpublic Queue d(){return new Queue("d") ;}}
生产者
@Autowiredprivate AmqpTemplate rabbitmqTemplate;//生产者@Overridepublic 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;}