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. rabbitMQ基本介绍

    2024-02-07 00:34:02       28 阅读
  2. RabbitMQ介绍

    2024-02-07 00:34:02       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 00:34:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 00:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 00:34:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 00:34:02       20 阅读

热门阅读

  1. 学习数据结构和算法的第3天

    2024-02-07 00:34:02       37 阅读
  2. 闲腚摸史干之c++入门

    2024-02-07 00:34:02       37 阅读
  3. Android edittext限制输入金额

    2024-02-07 00:34:02       36 阅读
  4. 如何用 AI 工具建立自己的知识库?

    2024-02-07 00:34:02       33 阅读
  5. 如何处理旅游景区游客投诉 AIGC的应用场景之一

    2024-02-07 00:34:02       34 阅读
  6. 2.5数据结构与算法学习日记

    2024-02-07 00:34:02       28 阅读
  7. MySQL 的UI

    2024-02-07 00:34:02       29 阅读
  8. OpenAI API 中的 system、user 和 assistant 什么意思?

    2024-02-07 00:34:02       35 阅读
  9. LeetCode--代码详解 2341.数组能形成多少数对

    2024-02-07 00:34:02       31 阅读