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

相关推荐
小林想被监督学习4 小时前
RabbitMQ 的7种工作模式
分布式·rabbitmq
wy02_12 小时前
Linux下载RabbitMQ,并解决Github拒绝访问443的问题
linux·rabbitmq·github
浩哲Zhe2 天前
RabbitMQ
java·分布式·rabbitmq
Allen Bright2 天前
RabbitMQ中的Topic模式
分布式·rabbitmq
Allen Bright2 天前
Spring Boot 整合 RabbitMQ:手动 ACK 与 QoS 配置详解
spring boot·rabbitmq·java-rabbitmq
一路狂飙的猪2 天前
RabbitMQ的工作模型
分布式·rabbitmq
来一杯龙舌兰2 天前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
Allen Bright3 天前
Spring Boot 整合 RabbitMQ:从入门到实践
spring boot·rabbitmq·java-rabbitmq
bug_null3 天前
RabbitMQ消息可靠性保证机制7--可靠性分析-rabbitmq_tracing插件
分布式·rabbitmq
kingbal3 天前
RabbitMQ:添加virtualHost
分布式·rabbitmq