我有大量的服务和一组核心服务,这些服务需要首先加载,以便在其他服务加载时可用。
Wildfly 在部署时是否使用特定顺序(例如按字母顺序、基于文件名)?或者有办法设置吗?
如果其他服务尚未准备好,我们会尝试添加代码来重试连接,但这涉及线程,有时当内容取消部署时线程无法正确终止。
有些事情对我来说不起作用:
- 有可能控制 .ear 中模块(ejb、war 等)的部署顺序,但我对控制 .ear 部署的顺序很感兴趣。
- .ear 可以设置为另一个 .ear 的依赖项但是我们的服务部署在不同的地区。我们有 serviceA-regionA-1.0.0.ear、serviceA-regionB-1.0.0.ear 等等……如果必须指定所有这些 ear 名称,那就太麻烦了。
答案1
Wildfly(自 AS7 起)尝试进行并行部署以加快进程,如果您想要进行顺序部署,那么您可以提供每个部署对另一个部署的依赖关系(如您在问题中提供的链接)。
或者,您可以使用管理 CLI 来安排您的部署计划,使用批处理功能确保您的部署按照脚本的顺序进行,并且如果至少一个命令或操作失败,则批处理中所有其他成功执行的命令和操作都将被回滚。
也可以看看: