RabbitMQ学习-Three

news/2024/11/29 3:17:39/

RabbitMQ逻辑结构

RabbitMQ是一个消息队列系统,它的逻辑结构与传统的数据库(如MySQL)有所不同。在RabbitMQ中,主要的概念是“virtual host”(虚拟主机)和“queue”(队列),而不是数据库和表。

  • Virtual Host(虚拟主机):在RabbitMQ中,虚拟主机类似于MySQL中的数据库,但它是用来隔离不同应用程序或不同环境的消息队列。每个虚拟主机都有自己独立的队列、交换机和绑定。
  • Queue(队列):队列是RabbitMQ中存储消息的地方。生产者将消息发送到队列中,消费者从队列中接收消息。队列可以绑定到交换机上,以便根据路由规则将消息发送到特定的队列。

一、RabbitMQ与MySQL的连接

虽然RabbitMQ和MySQL是两种不同的系统,但它们可以通过以下方式进行交互:

  1. 消息生产者:将消息发送到RabbitMQ的队列中。这些消息可以是来自MySQL数据库的数据,也可以是其他应用程序产生的数据。
  2. 消息消费者:从RabbitMQ的队列中接收消息,并将这些消息处理或存储到MySQL数据库中。这可以通过编写一个消费者程序来实现,该程序从RabbitMQ队列中读取消息,然后将其解析并存储到MySQL数据库中。

二、连接条件

  1. RabbitMQ连接条件
    • Host:RabbitMQ服务器的IP地址或主机名。
    • Port:RabbitMQ服务器的端口号,默认为5672。
    • Virtual Host:要连接的虚拟主机名称。
    • Username:连接mq的用户名。
    • Password:连接mq的密码。
  2. MySQL连接条件
    • URL:MySQL服务器的地址。
    • Port:MySQL服务器的端口号,默认为3306。
    • Database:要连接的数据库名称。
    • Username:连接数据库的用户名。
    • Password:连接数据库的密码。

三、区别

他们两个的主要不同点就是在于用户的权限,MySQL一般用户是登录后就可以访问所有的数据库和表;而RabbitMQ是用户分配到具体的虚拟主机的,比如说张三分配了虚拟主机1,但是我们连接的是虚拟主机2,那么这时候是不能访问的。

四、总结

RabbitMQ和MySQL是两种不同的系统,但它们可以通过消息队列进行交互。RabbitMQ提供了一个可靠的消息传递机制,而MySQL则提供了一个持久化的数据存储机制。通过结合使用这两种系统,我们可以实现更灵活和可扩展的应用程序架构。

RabbitMQ管理

一、用户管理

在RabbitMQ中,可以通过命令行工具或管理界面来管理用户。例如,可以新增用户、删除用户、修改用户密码和权限等。此外,还可以设置用户级别来控制其对系统的访问权限。

命令行操作示例

以下是一个在Linux中使用命令行创建用户的示例:

  1. 进入到RabbitMQ的sbin目录:
    cd /usr/local/rabbitmq_server-3.7.0/sbin
  2. 新增用户:
    ./rabbitmqctl add_user zhangsan admin123
  3. 设置用户级别(例如,设置为administrator):
    ./rabbitmqctl set_user_tags zhangsan administrator

用户的几个级别

1.adminstrator:可以登录web控制台、查看所有信息、可以对RabbitMQ进行管理;

2.monitoring:监控者,可以登录控制台,查看所有的信息;

3.policymaker:策略定制者,登录控制台,指定策略等;

4.management:普通的管理员,登录控制台;

web控制台页面:基本的操作都在这:添加删除虚拟主机、队列、交换机、用户


http://www.ppmy.cn/news/1550799.html

相关文章

CTF之密码学(费纳姆密码)

一、作为二进制替换密码的费纳姆密码 定义:费纳姆密码是一种由二进制产生的替换密码,也被称为弗纳姆密码(Vernam cipher)。它采用二进制表示法,将明文转化为二进制数字,并通过与密钥进行模2加法运算来产生密…

命令行版 postman 之 post 小工具

依赖 curljq post.sh #!/bin/bashBASEhttp://119.119.119.119 METHOD$1 URL$BASE/$2 LOGIN$BASE/login echo $URL token$(curl --silent $LOGIN -H Accept: application/json, text/plain, */* -H Accept-Language: zh-CN,zh;q0.9 -H Connection: keep-alive -H Con…

除了混合搜索,RAG 还需要哪些基础设施能力

Infinity 是一款专门为 RAG 设计的,在功能和性能上全面领先的数据库,针对向量,稀疏向量,还有文本类数据,分别提供高性能的向量搜索、稀疏向量搜索以及全文搜索,并且提供这些数据之上的高性能范围过滤&#…

RuoYi排序

RuoYi框架提供了多种实现排序的方法,以满足不同场景下的需求。这里简要介绍几种常见的排序实现方式: 1. 后端排序 1.1 使用startPagePlus方法 RuoYi框架中,可以通过对BaseController进行扩展来实现更灵活的分页与排序功能。例如&#xff0…

uniapp定义new plus.nativeObj.View实现APP端全局弹窗

为什么要用new plus.nativeObj.View在APP端实现弹窗?因为uni.showModal在APP端太难看了。 AppPopupView弹窗函数参数定义 参数一:弹窗信息(所有属性可不填,会有默认值) 1.title:"", //标题 2.content:"", //内容 3.confirmBoxCo…

Ubuntu 常用解压与压缩命令

.zip文件 unzip FileName.zip # 解压 zip DirName.zip DirName # 将DirName本身压缩 zip -r DirName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一起压缩 zip DirName.zip DirName 行为: 只压缩 DirName 目录本身&#xff…

架构第三章:网站优化

优化启用网站压缩deflate 1.查看并启用mod_deflate ,压缩传输 查看mod_deflate: apachectl -M |grep deflate 如果有显示,则表示已启用压缩;如果没有显示,则需要手动启动deflate模块:vim /usr/local/httpd/conf/http…

Spring Boot英语知识网站:开发策略

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 英语知识应用网站的系统管理员可以对用户信息添加修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 在线学习管理 系统管理员可以对在线学习信息进行添加,修改&#xff0…