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文件中

相关推荐
过期动态1 天前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
YDS8293 天前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
霸道流氓气质3 天前
Kiro 中配置 RabbitMQ MCP Server 指南
分布式·rabbitmq·ruby
quweiie4 天前
tp8使用rabbitMQ消息队列的示例
消息队列·rabbitmq·thinkphp消息队列
六点_dn4 天前
RabbitMQ学习笔记-定义与作用
笔记·学习·rabbitmq
Steadfast_GG6 天前
RabbitMQ升级打怪之路(1) - RabbitMQ概述
消息队列·rabbitmq·流量削峰·消息分发·异步解耦
时代的狂7 天前
RabbitMQ 面试问答
分布式·面试·rabbitmq
半夜修仙7 天前
Spring集成邮箱功能
java·开发语言·spring boot·spring·rabbitmq·github·maven
半夜修仙9 天前
RabbitMQ的推模式和拉模式
java·分布式·中间件·rabbitmq·github·java-rabbitmq
9523610 天前
RabbitMQ - 高级特性
java·spring boot·分布式·后端·rabbitmq