消息队列Rabbitmq基本操作

本文档详述了RabbitMQ的管理命令,包括启动、重置、用户管理、权限配置、状态查看及Web插件安装。同时,提供了解决常见问题的方法,如连接失败、服务重启等,并介绍了集群与高可用配置流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.cnblogs.com/kaituorensheng/p/4985767.html

消息队列Rabbitmq

阅读目录

1. 启动
2. 队列重置(清空队列、用户等)
3. 关闭
4. 列举所有用户
5. 列举所有队列
6. 添加用户
7. 设置用户角色为管理员
8. 权限设置
9. 查看状态
10.安装 RabbitMQWeb管理插件
11.疑难杂症
12. RabbitMQ 集群与高可用配置
13. Rabbitmq的mnesia数据地址

1. 启动(后台运行)

rabbitmq-server  -detached

 

2. 队列重置(清空队列、用户等)

rabbitmqctl stop_app
rabbitmqctl reset

3. 关闭

rabbitmqctl stop

4. 列举所有用户

rabbitmqctl list_users

5. 列举所有队列

rabbitmqctl list_queues

6. 添加用户

rabbitmqctl add_user user_name user_passwd

7. 设置用户角色为管理员

rabbitmqctl set_user_tags user_name administrator

8. 权限设置

rabbitmqctl set_permissions -p / user_name ".*" ".*" ".*"

6,7,8三步操作举例(添加用户admin)

sudo rabbitmqctl add_user admin admin
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

9. 查看状态

rabbitmqctl status

 

10.安装 RabbitMQWeb管理插件

rabbitmq-plugins enable rabbitmq_management  

可以利用http://ip:15672查看界面状态

 

11.疑难杂症

11.1 症状:启动后出现

1

2

3

4

5

6

7

8

Error: unable to connect to node 'rabbit@idcp-mq010177080030': nodedown

Error in log handler

====================

Event: {error,<0.9.0>,

              {<0.451.0>,

               "** Connection attempt from disallowed node ~w ** ~n",

               ['rabbitmq-cli-3355@idcp-mq010177080030']}}

Error: function_clause

破解

重启服务

sudo rabbitmq-server restart

11.2 无法正常启动rabbitmq-server

Error: unable to connect to node rabbit@nu5i12294: nodedown
ERROR: epmd error for host nu5i12294: address (cannot connect to host/port

解决:

http://yodi.polatic.me/solve-rabbitmq-error-epmd-error-for-host-ubuntu-address-cannot-connect-to-hostport/

判断hostname 与/host/hosts里面的ip和主机名一致

例如,ip为10.10.10.10

检查hostname:

$hostname
host_jihite

检查  /etc/hosts

10.10.10.10  host_jihite

 

12. RabbitMQ 集群与高可用配置

http://88250.b3log.org/rabbitmq-clustering-ha

 

13. Rabbitmq的mnesia数据地址

1. 停止消息队列

sudo rabbitmqctl stop 

 

2. 创建mnesia目录,修改用户属性

mkdir mnesia

sudo chown rabbitmq:rabbitmq  /home/test/mnesia

 

3. 修改默认MNESIA_BASE地址

vim /usr/lib/rabbitmq/bin/rabbitmq-defaults

MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia

改为  MNESIA_BASE=${SYS_PREFIX}/home/test/mnesia

 

4. 启动消息队列

sudo rabbitmq-server &

5. 建立admin用户

sudo rabbitmqctl add_user admin admin
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
### RabbitMQ 消息队列详细介绍 #### 一、RabbitMQ 基本概念 RabbitMQ 是一种开源的消息代理服务器,支持多种消息协议,易于部署和使用,在分布式系统中负责存储并转发消息[^2]。 #### 二、安装 Erlang 和 RabbitMQ 为了运行 RabbitMQ, 需要先安装Erlang依赖库。具体操作可以根据操作系统不同有所变化,通常可以通过包管理器来完成这一过程[^1]。 #### 三、数据一致性保障机制 当消息未能成功写入或被服务端正常读取时会影响系统的最终一致性。因此,确保消息可靠传输至关重要。为此,RabbitMQ 提供了诸如确认机制等功能以增强可靠性[^3]。 #### 四、工作模式详解 RabbitMQ 支持五种主要的工作模式: - **简单模式 (Simple Mode)**: 生产者直接向指定队列发送消息;消费者也只监听特定队列中的消息。 - **Work Queues 工作队列模式**: 多个工作者竞争消费同一队列里的任务,适合分配耗时的任务处理。 - **发布/订阅模式(Publish/Subscribe)**: 实现了一对多的消息广播功能。生产者将消息投递给交换机(exchange),后者会把接收到的信息复制分发给所有已注册的兴趣方(queue)[^4]。 - **Routing 路由模式**: 允许基于关键字过滤条件精确控制哪些消息应该进入哪个队列。 - **Topics 主题模式**: 类似于路由模式但是更加灵活,允许更复杂的匹配规则比如通配符(*)等特性来进行细粒度的消息筛选。 ```python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 创建一个名为 'hello' 的队列 channel.queue_declare(queue='hello') # 向队列发送一条消息 channel.basic_publish( exchange='', routing_key='hello', body='Hello World!' ) print(" [x] Sent 'Hello World!'") connection.close() ``` 此段Python代码展示了如何通过Pika库连接本地的RabbitMQ实例并向其中的一个队列推送简单的字符串消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值