【发布时间】:2017-06-20 22:35:39
【问题描述】:
我是 Mule ESB 的新手。我想知道,我可以在不重新部署的情况下升级 Mule 应用程序。我说的是可插拔性。假设我的应用程序已经在运行,现在添加了更多功能或客户端流程。现在我想像新插件一样添加这个新流程。有没有可能在不停机的情况下做到这一点。? 例如在我的 Mule 应用程序中,我使用了一个 HTTP 连接器来连接一个客户端。 现在如果需要添加新的 HTTP 连接器,我可以在不重新部署的情况下进行吗?
【问题讨论】:
我是 Mule ESB 的新手。我想知道,我可以在不重新部署的情况下升级 Mule 应用程序。我说的是可插拔性。假设我的应用程序已经在运行,现在添加了更多功能或客户端流程。现在我想像新插件一样添加这个新流程。有没有可能在不停机的情况下做到这一点。? 例如在我的 Mule 应用程序中,我使用了一个 HTTP 连接器来连接一个客户端。 现在如果需要添加新的 HTTP 连接器,我可以在不重新部署的情况下进行吗?
【问题讨论】:
您现在可以修改配置文件和自定义类并重新加载它们,而无需重新启动 Mule。
Mule 每三秒检查一次 $MULE_HOME/apps 目录下更新的配置文件,当它找到时,它会重新加载该应用程序 lib 目录中的配置文件和 JAR。
https://docs.mulesoft.com/mule-user-guide/v/3.2/hot-deployment
【讨论】:
不,你不能。您可以做的是部署一个新的应用程序,并使用相同的 HTTP 连接器(如果您在两个应用程序的公共域中定义它)。
【讨论】:
这在单个服务器中是不可能的。您可以通过 martinfowler.com/bliki/BlueGreenDeployment.html 实现它。 要完成这项工作,您需要两台服务器和一个代理。您在代理中使一台服务器脱机,更新它然后重新启用。然后你对第二台服务器做同样的事情。我们在 Talend ESB 中面临同样的问题。
【讨论】:
这是不可能的,但您可以添加和重新部署应用程序
【讨论】: