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

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.kler.cn/news/336187.html

相关文章:

  • updatedb命令:更新locate数据库
  • 频繁full gc问题排查及解决
  • JavaScript 中的变量作用域
  • 基于epoll的Reactor模型
  • 面试系列-淘天提前批面试
  • 活体检测标签之2.4G有源RFID--SI24R2F+
  • 儿童需要学习C++多久才能参加信息学奥赛的CSP-J比赛?
  • 探索未来:揭秘pymqtt,AI与物联网的新桥梁
  • 【java】数据类型与变量以及操作符
  • 关于Excel将列号由字母改为数字
  • 微信小程序开发-调试及配置文件介绍
  • Android车载——VehicleHal运行流程(Android 11)
  • 开源跨平台三维模型轻量化软件osgGISPlugins-1、简介
  • [MarsCode 系列] 查找热点数据
  • 60 序列到序列学习(seq2seq)_by《李沐:动手学深度学习v2》pytorch版
  • 通信工程学习:什么是NFS网络文件系统
  • 数据库概述(3)
  • 数据结构之树(2)
  • CART决策树特征重复使用问题:构建CART决策树时,使用了特征a作为分裂点,其子树仍然可能再次使用特征a作为分裂点
  • Python数据分析和可视化