如何清空Mulesoft 4.3.0独立集群中的object store(默认文件持久化存储)
MuleSoft 4.3.0 独立集群默认文件持久化Object Store清空方案
优先推荐方案:内置清空接口(无业务中断)
你提到的后门API是风险最低、操作最简单的方案,Mule内置的Object Store组件原生支持集群感知的清空操作,不需要重启任何节点或应用,步骤如下:
- 新增一个带IP白名单限制的私有HTTP接口,避免非授权调用
- 在接口流程中添加
os:clear组件,指定你当前使用的Object Store名称即可,示例配置:
<!-- 如果你用的是应用默认的Object Store,直接用内置名称即可 --> <os:clear doc:name="Clear lastSuccessRunTime所属Object Store" doc:id="xxx" objectStore="_APP_OBJECT_STORE_NAME"/> <!-- 如果你是自定义命名的Object Store,填入你自定义的名称即可 -->
- 部署更新后调用一次该接口,即可同步清空集群所有节点的持久化数据和缓存,后续
os:retrieve操作就会自动返回你配置的默认值。
逐台重启方案说明
逐台重启本身不能解决问题,原因如下:
Mule 4集群的默认文件持久化Object Store会自动在节点间做数据同步,只要集群中还有任意一个节点留存了历史数据,重启后的节点会自动同步该数据,你删除单节点的Object Store文件夹不会生效。
如果一定要用重启方案,必须按如下操作,但会导致业务中断:
- 停止集群中该应用的所有实例
- 逐台删除每个节点上对应应用的Object Store文件夹,路径为
.mule/apps/<你的应用名>/objectstore,如果是全局Object Store则路径为.mule/objectstore/<全局存储名称> - 逐台重启节点恢复应用实例
注意事项
如果你的Object Store配置了持久化到外置存储(比如数据库、Redis),需要对应清空外置存储中的数据,以上方案仅针对默认的本地文件持久化场景。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

