当前位置: 首页 > news >正文

RabbitMQ入门3—virtual host参数详解

在 RabbitMQ 中,创建 Virtual Host 时会涉及到一些参数配置,比如 tagsDefault Queue Type。下面是对这两个参数的详细解释:

1. Tags

Tags 是 Virtual Host 的标记,用来为 Virtual Host 添加元数据,帮助你管理和组织不同的 Virtual Host。它们通常用于区分不同类型的 Virtual Host,或赋予 Virtual Host 特定的功能属性。

在 RabbitMQ 中,tags 最常用于用户和 Virtual Host 的管理。例如,在用户管理中,可以为用户分配不同的 tags(如管理员标签 administrator),用以控制不同权限。同样,对于 Virtual Host,tags 可以用于对虚拟主机的分组或分类,但这些标签更多是为了管理方便,RabbitMQ 本身并不直接对 Virtual Host 的 tags 做任何行为上的区分。

2. Default Queue Type

Default Queue Type 指定了在这个 Virtual Host 中创建队列时的默认队列类型。RabbitMQ 支持多种类型的队列,每种队列类型都有不同的特性,适合不同的使用场景。

默认情况下,RabbitMQ 提供四种队列类型:

  1. Classic(默认)

    • 这是最常见的队列类型,使用传统的基于磁盘和内存的存储机制。
    • 适合大多数普通应用,支持持久化、镜像等功能。
  2. Quorum

    • 是为支持高可用性和数据一致性设计的队列类型。使用 Raft 算法确保在多个节点间的数据一致性。
    • 适合需要高可用性和数据一致性的场景,但对资源要求更高。
  3. Stream(从 3.9 版起引入):

    • 是为了支持高吞吐量、低延迟的场景而设计的队列类型,特别适合实时流处理。
    • 允许从队列中的任意位置读取消息,具有消息存储时间长、顺序读取等优势。
  4. Default(默认为 Classic):

    • 当你不明确指定队列类型时,RabbitMQ 将使用此类型作为默认值。通常是 Classic,但你可以通过 Virtual Host 级别的设置,将默认队列类型改为其他类型,如 QuorumStream

为什么要设置 Default Queue Type?

默认队列类型的设置帮助简化队列创建的流程,确保队列在没有明确指定类型时仍能符合系统需求。通过在 Virtual Host 上设置默认队列类型,你可以确保所有使用该 Virtual Host 的队列遵循一致的队列类型标准。

例如,如果你希望在某个 Virtual Host 中,所有队列都默认使用 Quorum 以确保数据高可用性,那么可以将 Default Queue Type 设置为 quorum,这样在队列创建时就不需要每次指定类型。

如何设置

  1. 通过 RabbitMQ 管理界面
    • 在 RabbitMQ 管理界面的 Virtual Host 部分,你可以看到 Default Queue Type 的选项,并选择适当的队列类型(classic, quorum, stream 等)。
  2. 通过 API 或 CLI: 你也可以使用 RabbitMQ 的 API 或 CLI 工具来管理 Virtual Host,包括设置默认队列类型。

示例

# 使用 RabbitMQ 命令行工具创建一个 virtual host 并设置默认队列类型 
rabbitmqctl add_vhost my_vhost --default-queue-type quorum

这个命令会创建一个名为 my_vhost 的 Virtual Host,并将其默认的队列类型设置为 quorum

总结

  • Tags:是一种用于组织和管理 Virtual Host 的元数据,方便进行分类或标记。
  • Default Queue Type:用于指定在这个 Virtual Host 中创建队列时的默认类型,确保队列在没有指定类型的情况下仍符合预期的行为。
http://www.lryc.cn/news/455047.html

相关文章:

  • 【Nacos入门到实战十四】Nacos配置管理:集群部署与高可用策略
  • UE5+ChatGPT实现3D AI虚拟人综合实战
  • [图形学]smallpt代码详解(2)
  • vmstat命令:系统性能监控
  • linux部署NFS和autofs自动挂载
  • WPF RadioButton 绑定boolean值
  • 2024 ciscn WP
  • 代码随想录--字符串--重复的子字符串
  • No.5 笔记 | 网络端口协议概览:互联网通信的关键节点
  • 手机地址IP显示不对?别急,这里有解决方案
  • 人工智能对未来工作影响的四种可能性
  • SpringBoot+ElasticSearch7.12.1+Kibana7.12.1简单使用
  • RESTful风格接口+Swagger生成Web API文档
  • 性能测试学习2:常见的性能测试策略(基准测试/负载测试/稳定性测试/压力测试/并发测试)
  • 【C++】—— 继承(上)
  • 【2024保研经验帖】东南大学计算机学院夏令营
  • dz论坛可可积分商城插件价值399元
  • python的extend和append
  • 贪心算法相关知识
  • 济南比较出名的人物颜廷利:全球最具影响力的思想家起名大师
  • 第100+27步 ChatGPT学习:概率校准 Temperature Scaling
  • Python知识点:如何应用Python工具,使用NLTK进行语言模型构建
  • 深入浅出MySQL
  • 【WRF工具】cmip6-to-wrfinterm工具概述:生成WRF中间文件
  • 大厂面试真题:阿里经典双重检测DCL对象半初始化问题
  • 20款奔驰CLS300升级原厂抬头显示HUD 23P智能辅助驾驶 触摸屏人机交互系统
  • GoogleNet原理与实战
  • MongoDB 数据库服务搭建(单机)
  • 基于springboot+小程序的智慧物业平台管理系统(物业1)
  • [SpringBoot] 苍穹外卖--面试题总结--上