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