跳到主要内容
版本: 4.1

已弃用的功能

概述

随着时间的推移,RabbitMQ 的某些功能不再相关。 有时,必须移除某个功能,以便为更好的替代方案腾出空间。 在我们废弃一个功能之前,我们会遵循一个弃用时间窗口:我们会宣布某个功能已被弃用,并说明原因、用户应如何为此做好准备,以及估计的未来 RabbitMQ 版本,在该版本中,此弃用的功能将被移除且不再受支持。

除了公开声明之外,RabbitMQ 还有一个“已弃用功能”子系统,如果用户正在使用将来会被移除的功能,该子系统可以帮助直接从 Broker 通知用户。

您可以在专用页面中查看实际已弃用功能的列表

已弃用功能生命周期

“已弃用功能”子系统基于功能标志子系统。 因此,就像功能标志从实验性到稳定再到必需一样,已弃用功能遵循以下阶段

  1. 默认允许。 用户可以继续使用该功能。 他们只会在日志中收到警告,并且可以使用配置旋钮启动 RabbitMQ,就好像该功能已移除以进行测试一样。
  2. 默认拒绝。 该功能仍然存在,但开箱即用时不可用,就像已被移除一样。 用户可以从配置中重新启用它。
  3. 已断开连接。 该功能仍然存在于代码中,但在官方软件包中已编译出来。 用户必须从源代码重新编译 RabbitMQ 才能继续使用它。 请注意,我们不计划经常使用此阶段,如果曾经使用过。
  4. 已移除。 该功能的代码已消失,无法再使用它。 这相当于必需的功能标志。

检查是否使用了已弃用的功能

除了本网站上记录的已弃用功能的完整列表之外,您还可以使用以下方法查看特定 RabbitMQ 部署的已弃用功能

  • CLIrabbitmq-diagnostics list_deprecated_features
  • 管理 UI “管理” > “已弃用功能”面板

您可以查询 RabbitMQ 以查明节点或集群是否正在积极使用一个或多个已弃用的功能

rabbitmq-diagnostics check_if_any_deprecated_features_are_used

它列出已使用的已弃用功能(如果有),如果没有使用任何功能,则退出代码为 0;如果正在积极使用一个或多个已弃用功能,则退出代码为非零。

您可以使用 HTTP API 执行相同的操作

GET /api/deprecated-features/used
信息

请注意,这些查询的结果取决于是否可以检测到已弃用功能的使用。 例如,可以检测到是否使用了经典队列镜像。 但是,全局 QoS 则无法检测。

配置已弃用功能行为

如上所述,用户可以决定关闭已弃用的功能,以测试 RabbitMQ 及其应用程序的行为,就好像该功能已被移除一样。

# Try RabbitMQ as if the deprecated feature was gone.
deprecated_features.permit.some_deprecated_feature = false

另一位用户可能会决定重新启用默认拒绝的已弃用功能,以便在升级 RabbitMQ 的同时,争取更多时间来调整其应用程序。

# Permit a deprecated feature that is denied by default.
deprecated_features.permit.some_deprecated_feature = true
© . All rights reserved.