您的位置:首页 > 编程语言 > Java开发

springboot RabbitMQ 使用

2019-06-21 16:45 405 查看

参考

https://blog.csdn.net/hellozpc/article/details/81436980

比kafka简单;

多个接收者,实现解耦,实现不同数据库的同步,

只能消费一次实现数据的一致性;

AMQP:advanced mssage queuing protocol 高级消息队列协议

 

简单rabbitMQ的安装和配置

1.先安装对应的erLong语言包;

2.安装RabbitMQ;

3.基本操作;

D:\rabbitMQ\rabbitMQ\rabbitmq_server-3.7.9\sbin目录下

执行rabbitmq-plugins enable rabbitmq_management 启动Rabbit插件和rabbit;

停止服务:net stop RabbitMQ

启动服务:net start RabbitMQ

启动监控管理器:rabbitmq-plugins enable rabbitmq_management

关闭监控管理器:rabbitmq-plugins disable rabbitmq_management

启动rabbitmq:rabbitmq-service start

关闭rabbitmq:rabbitmq-service stop

查看所有的队列:rabbitmqctl list_queues

清除所有的队列:rabbitmqctl reset

关闭应用:rabbitmqctl stop_app

启动应用:rabbitmqctl start_app

默认账号登录:guest/ guest

管理工具端口号:http://127.0.0.1:15672/#/queues

AMQP端口号:5672

集群端口号:25672

 

4.创建user,创建virtualHost,user加入virtualHost;

创建连接;

 

五种队列

都需要整合springboot;

rabbitMQ工作的五种队列,或五种工作模式;(简单队列,work模式,订阅模式,路由模式,)

下面介绍常用两种;

 

五种队列之简单队列(一对一PC模式)

发送消息

Connection connection = rabbitConfig.getConnection();

Channel channel = connection.createChannel();

channel.queueDeclare(QUEUE_NAME,false,false,false,null);

channel.basicPublish("",QUEUE_NAME,null,message.getBytes());//推送消息到队列中

channel.close();

connection.close();

接收消息

Connection connection = rabbitConfig.getConnection();

Channel channel = connection.createChannel();

channel.queueDeclare(QUEUE_NAME,false,false,false,null);

QueueingConsumer consumer = new QueueingConsumer(channel);//在通道中建立消费者

channel.basicConsume(QUEUE_NAME,true,consumer);//消费者消费消息

QueueingConsumer.Delivery delivery = consumer.nextDelivery();//从消费者中拿到消息

String message = new String(delivery.getBody());

 

五种队列之订阅模式(具体配置详见参考)

先创建配置文件(定义消息队列,定义转换机,配置消息队列和转换机)

在配置监听器,监听队列中的消息;

处理消息业务;

 

springboot 配置rabbitMQ

spring:

rabbitmq:

host: ${rabbit-uri:xxx.xx.x.xx}

port: ${rabbit-port:5672}

username: ${rabbit-username:guest}

password: ${rabbit-password:guest}

virtual-host: /

# 设置消息的确认模式为auto

listener:

simple:

acknowledge-mode: auto

retry:

## 开启消费者重试

enabled: true

##最大重试次数(默认无限重试,会导致宕机)

max-attempts: 5

##重试间隔次数

initial-interval: 3000

 

 

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: