Khepri 常见问题解答
我看到 khepri_db
功能标志在 RabbitMQ 代码中被标记为实验性的。它是否受支持?
是的,从 RabbitMQ 4.0 开始,RabbitMQ 团队将支持使用 Khepri 的节点。同样,将提供升级路径以迁移到未来的版本。
然而,RabbitMQ 3.13.x 中的 Khepri 不受支持。如果 3.13.x 节点上启用了 Khepri,则无法从 3.13.x 升级到 4.x 及更高版本。您将必须使用蓝绿部署将所有内容移动到另一个节点或集群。
我看到 khepri_db
功能标志在 RabbitMQ 代码中被标记为实验性的。是否可以升级到未来的版本?
是的;请参阅前一个问题和答案。
为什么我看到日志中显示 “Starting Khepri-based RabbitMQ metadata store”,即使我没有启用 khepri_db
?
即使 RabbitMQ 不使用 Khepri 并继续使用 Mnesia 作为其后端,Khepri 元数据存储也始终会初始化。
原因是 khepri_db
功能标志可以从任何节点启用。该节点必须能够与集群中所有节点上的 Khepri 进行通信。因此,Khepri 在所有地方都已启动,以便在将来启用时做好准备。
同时,它不会使用资源或干扰节点或集群的运行。
为什么我看到日志中显示 “Khepri-based RabbitMQ metadata store ready”,即使我没有启用 khepri_db
?
请参阅前一个问题和答案。
是否可以禁用 Khepri?
否,一旦执行迁移,就不支持返回 Mnesia。
另一种选择是使用蓝绿部署将所有内容移动到另一个节点或集群,并停用启用 Khepri 的节点。
是否可以从基于 Mnesia 的节点获取定义并将其导入到基于 Khepri 的节点中?
是的。这些定义与元数据存储无关,可以导入到 RabbitMQ 节点中,而无需考虑用于导出定义的节点或导入定义的节点所使用的元数据存储后端。