RabbitMQ逻辑结构
RabbitMQ是一个消息队列系统,它的逻辑结构与传统的数据库(如MySQL)有所不同。在RabbitMQ中,主要的概念是“virtual host”(虚拟主机)和“queue”(队列),而不是数据库和表。
- Virtual Host(虚拟主机):在RabbitMQ中,虚拟主机类似于MySQL中的数据库,但它是用来隔离不同应用程序或不同环境的消息队列。每个虚拟主机都有自己独立的队列、交换机和绑定。
- Queue(队列):队列是RabbitMQ中存储消息的地方。生产者将消息发送到队列中,消费者从队列中接收消息。队列可以绑定到交换机上,以便根据路由规则将消息发送到特定的队列。
一、RabbitMQ与MySQL的连接
虽然RabbitMQ和MySQL是两种不同的系统,但它们可以通过以下方式进行交互:
- 消息生产者:将消息发送到RabbitMQ的队列中。这些消息可以是来自MySQL数据库的数据,也可以是其他应用程序产生的数据。
- 消息消费者:从RabbitMQ的队列中接收消息,并将这些消息处理或存储到MySQL数据库中。这可以通过编写一个消费者程序来实现,该程序从RabbitMQ队列中读取消息,然后将其解析并存储到MySQL数据库中。
二、连接条件
- RabbitMQ连接条件:
- Host:RabbitMQ服务器的IP地址或主机名。
- Port:RabbitMQ服务器的端口号,默认为5672。
- Virtual Host:要连接的虚拟主机名称。
- Username:连接mq的用户名。
- Password:连接mq的密码。
- MySQL连接条件:
- URL:MySQL服务器的地址。
- Port:MySQL服务器的端口号,默认为3306。
- Database:要连接的数据库名称。
- Username:连接数据库的用户名。
- Password:连接数据库的密码。
三、区别
他们两个的主要不同点就是在于用户的权限,MySQL一般用户是登录后就可以访问所有的数据库和表;而RabbitMQ是用户分配到具体的虚拟主机的,比如说张三分配了虚拟主机1,但是我们连接的是虚拟主机2,那么这时候是不能访问的。
四、总结
RabbitMQ和MySQL是两种不同的系统,但它们可以通过消息队列进行交互。RabbitMQ提供了一个可靠的消息传递机制,而MySQL则提供了一个持久化的数据存储机制。通过结合使用这两种系统,我们可以实现更灵活和可扩展的应用程序架构。
RabbitMQ管理
一、用户管理
在RabbitMQ中,可以通过命令行工具或管理界面来管理用户。例如,可以新增用户、删除用户、修改用户密码和权限等。此外,还可以设置用户级别来控制其对系统的访问权限。
命令行操作示例
以下是一个在Linux中使用命令行创建用户的示例:
- 进入到RabbitMQ的sbin目录:
cd /usr/local/rabbitmq_server-3.7.0/sbin
- 新增用户:
./rabbitmqctl add_user zhangsan admin123
- 设置用户级别(例如,设置为administrator):
./rabbitmqctl set_user_tags zhangsan administrator
用户的几个级别
1.adminstrator:可以登录web控制台、查看所有信息、可以对RabbitMQ进行管理;
2.monitoring:监控者,可以登录控制台,查看所有的信息;
3.policymaker:策略定制者,登录控制台,指定策略等;
4.management:普通的管理员,登录控制台;
web控制台页面:基本的操作都在这:添加删除虚拟主机、队列、交换机、用户