rabbitMQ基本介绍

rabbitMQ 默认端口 5672

mnesia 非关系型数据库 存储交换机队列和绑定的元数据

启动rabbitMQ服务

/sbin rabbitmq-server

/sbin rabbitmqctl stop

/sbin rabbitmqctl stop-app 只停止rabbitMQ应用程序

默认日志:/var/log/rabbitmq/

配置文件:/etc/rabbitmq/rabbitmq.config

交换机类型

direct 直连

fanout 扇形

topic 主体

exchange_declare 声明交换机

queue_declare 声明队列

durable 队列和交换机的属性,是否持久化(默认false) rabbit服务器宕机或者重启后,队列和交换机是否自动创建,只要设置为ture,这样就能保证每次重启rabbit服务器,队列和交换机会自动创建

切记:队列里的消息还是会丢失

服务器宕机消息能恢复的三个条件:

1 把他的投递模式选项设置为2(持久 delivery mode)

2 发送到持久好的交换机

3 到达持久化的队列

生产者的步骤:

1 连接到rabbitMQ $conn = new AMQPConnection(HOST,PORT,USER,PASS);

2 获取信道 $channel = $conn->channel();

3 声明交换机 $channel->exchange_declare('logs-exchange','topic',false,true,false);

4 创建消息

5 发布消息

6 关闭信道

7 关闭连接

消费者的步骤:

1 链接到rabbitMQ $conn = new AMQPConnection(HOST,PORT,USER,PASS);

2 获得信道 $channel = $conn->channel();

3 声明交换机 $channel->exchange_declare('logs-exchange','topic',false,true,false);

4 声明队列 $channel->queue_declare('msg-inbox-logs',false,true,false,false);

5 把队列和交换机绑定 $channel->queue_bind('msg-inbox-logs','logs-exchange','error.msg-inbox');

6 消费消息

7 关闭信道

8 关闭连接

查看rabbitmq版本

./sbin/rabbitmqctl status | grep rabbit

./sbin/rabbitmqctl version

用户管理

./sbin//rabbitmqctl add_user xiaopzi 123456

./sbin/rabbitmqctl delete_user xiaopzi

./sbin/rabbitmqctl list_users

./sbin/rabbitmqctl change_password xiaopzi 111111

权限系统

1.6.0版本开始,有了ACL风格的权限系统,之前只能对vhost进行授权和访问

读:有关消费消息的任何操作,包括清除整个队列(同样需要绑定操作的成功)

写:发布消息(同样需要绑定操作的成功)

配置:队列和交换机的创建和删除

AMQP命令:

exchange_declare

exchange_delete

queue_declare

queue_delete

queue_bind

basic_publish

basic_get

basic_consume

queue_purge

谨记:访问控制条目不能跨vhost,如果让一个用户对两个vhost有相同的权限,必须创建两份相同的访问控制条目

./sbin/rabbitmqctl set_permissions -p vhost_name user_name ".*" ".*" ".*" (配置 写 读)

./sbin/rabbitmqctl cleaar_permissoins -p vhost_name user_name

./sbin/rabbitmqctl list_permissions -p vhost_name (不指定-p 默认是 / vhost)

./sbin/rabbitmqctl list_user_permissions user_name (查看用户的所有vhost的权限)

vhost

.sbin/rabbitmqctl add_vhost vhost_name

.sbin/rabbitmqctl list_vhosts

./sbin/rabbitmqctl delete_vhost vhost_name

列出队列和消息数目

./sbin/rabbitmqctl list_queues

./sbin/rabbitmqctl list_queues -p vhost_name

./rabbitmqctl list_queues name durable auto_delete

./rabbitmqctl list_queues name messages consumers memory

查看交换机和绑定

./sbin/rabbitmqctl list_exchanges

./rabbitmqctl list_exchanges name type durable auto_delete

./sbin/rabbitmqctl list_bindings

日志

./sbin/rabbitmqctl rotate_logs .1 轮回日志

rabbitMQ高可用的两种方法:

1 集群

2 warren 另一种集群方式

shovel rabbitmq服务器之间复制消息的插件

启动(2.7.0开始):./sbin/rabbitmq-plugins enable amqp_client

配置:配置文件在rabbitmq.config文件中

相关推荐
BestandW1shEs3 小时前
彻底理解消息队列的作用及如何选择
java·kafka·rabbitmq·rocketmq
bug_null1 天前
RabbitMQ消息可靠性保证机制4--消费端限流
rabbitmq
青石路1 天前
不依赖 Spring,你会如何自实现 RabbitMQ 消息的消费(一)
rabbitmq
呼啦啦啦啦啦啦啦啦2 天前
【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制
分布式·rabbitmq
斯普信专业组2 天前
RabbitMQ实战启程:从配置到故障排查的实战处理(下)
网络·分布式·rabbitmq
呼啦啦啦啦啦啦啦啦2 天前
【Rabbitmq篇】RabbitMQ⾼级特性----消息确认
分布式·rabbitmq
泰山小张只吃荷园2 天前
快速入门消息队列MQ、RabbitMQ
java·spring boot·分布式·spring·spring cloud·rabbitmq·java-rabbitmq
呼啦啦啦啦啦啦啦啦3 天前
基于SpringBoot+RabbitMQ完成应⽤通信
spring boot·rabbitmq·java-rabbitmq
小马爱打代码3 天前
SpringBoot 整合 RabbitMQ
spring boot·rabbitmq·java-rabbitmq
漫天转悠4 天前
RabbitMQ的基本概念和入门
分布式·rabbitmq