【问题标题】:Mule ESB: Is it possible to start 2 instances of the Mule ESBMule ESB:是否可以启动 2 个 Mule ESB 实例
【发布时间】:2016-03-20 00:32:25
【问题描述】:

我创建了两个单独的目录,在其中安装了独立的 Mule ESB 服务器:

/ee/mmc-distribution-mule-console-bundle-3.5.2-HF1
/ee2/mmc-distribution-mule-console-bundle-3.5.2-HF1

我启动了第一台服务器,下面是状态:

[root@x240perf2 mmc-distribution-mule-console-bundle-3.5.2-HF1]# ./status.sh
MMC is running as PID=1998.
Mule Enterprise Edition is running as PID=2619.

然后我尝试启动第二个实例:

[root@x240perf2 mmc-distribution-mule-console-bundle-3.5.2-HF1]# ./startup.sh
Port 8585 is in use, please make it available and try again.

显然,原来的实例正在使用端口 8585

于是我停止第一个实例,启动第二个实例,成功出现,如下:

./startup.sh
Please enter the desired port for Mule [Default 7777]:

Starting MMC, please wait...

  class com.sun.jersey.multipart.impl.MultiPartConfigProvider
  class com.sun.jersey.multipart.impl.MultiPartReader
  class com.sun.jersey.multipart.impl.MultiPartWriter
[11-13 16:49:19] WARN  HttpSessionSecurityContextRepository [http-bio-8585-exec-1]: Failed to create a session, as response has been committed. Unable to store SecurityContext.
[11-13 16:49:32] WARN  HttpMethodBase [http-bio-8585-exec-12]: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.
[11-13 16:49:38] WARN  HttpSessionSecurityContextRepository [http-bio-8585-exec-12]: Failed to create a session, as response has been committed. Unable to store SecurityContext.
Nov 13, 2014 4:49:50 PM org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
Nov 13, 2014 4:49:50 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8585"]

但请注意,它似乎将 8585 用于 tomcat(我对此知之甚少,除了某种应用服务器,从未使用过)

我检查了这个网站:

http://www.mulesoft.org/documentation/display/33X/Running+Multiple+Mule+Instances

但它并没有讨论这个问题。它指向的页面似乎不是最新的。我是不是误会了什么

是否可以同时运行两个独立的 Mule ESB 实例

如果是这样,怎么办? (我将如何更改它使用的端口,我应该修改什么文件)

谢谢


编辑:我的第二个回应回答的帖子:

(顺便说一句:我使用的是 Mule ESB 独立企业版 3.5.2)

为了确保我没有任何正在运行的应用 在端口 8585 上,我关闭了我的原始实例,并创建了两个新实例,并确保没有应用程序部署到任何一个实例。

我启动第一个实例没有问题,但我启动的第二个实例仍然给我端口 8585 in use 错误(来自 startup.sh)

这个网站说MMC默认端口是7777,但是它运行的tomcat默认端口是8585

http://www.mulesoft.org/documentation/display/current/Setting+Up+MMC-Mule+ESB+Communications

我使用以下命令在我的第二个 8585 端口实例中查找所有文件

find . -type f |xargs grep  "8585

除了日志文件,我得到了两次点击

startup.sh

   and

/mmc-3.5.2-HF1/apache-tomcat-7.0.52/conf/server.xml

我在这两个实例中都没有找到 $MULE_HOME/apps/mmc/mule-config.xml(可能是因为我没有部署应用程序)

在server.xml中,MMC显然使用tomcat来 处理 MMC 应用程序,并且 server.xml 包含 以下:

<Connector port="8585" protocol="HTTP/1.1"

所以我想此时我可以将 8585 更改为 8586,但是...

startup.sh 有几个(大约 9 或 10 个)对 8585 的硬编码引用,以检查 MMC 是否正在运行,并在它是否正在运行时采取措施

那么我实际上是否必须更改整个 startup.sh 以将 8585 替换为第二个实例中的 8586 以及更改 server.xml 端口 8585 引用?

谢谢

【问题讨论】:

    标签: mule esb


    【解决方案1】:

    您可以根据需要运行任意数量的实例,只要它们不使用相同的端口即可。看起来您正在端口 8585 中部署某些东西,因此在第二种情况下,您必须选择不同的端口。 您在 Mule 运行时开发和部署的任何应用程序中是否正在使用该端口?

    此外,如果您在激活 MMC 代理的情况下使用 Mule 运行时,您还必须在第二个实例中更改代理的端口。我认为您可以在 /conf/wrapper.conf 中执行此操作,或者将以下参数传递给启动脚本:

    -Dmule.mmc.bind.port=7778 
    

    (或任何空闲的端口)。

    【讨论】:

    • startup.sh 要求提供 MMC 端口(默认为 7777),但正如我在上面最安静的第二次编辑中所说,MMC 的 def 端口为 777,但它是由 etomcat 驱动的具有 8585 的 def 端口。没有应用程序正在运行。我在我的问题的第二次编辑中提出的解决方案是 8585 问题的可行解决方案吗? (我使用的是 EE 独立版 3.5.2)
    • mquintas:现在我使用的是 ./mule 而不是 ./startup.sh,一切都很好,而且你的所有答案都很完美。谢谢
    【解决方案2】:

    您可以根据需要运行任意多个。 在 MMC 中,我们可以部署和运行许多应用程序,每个应用程序都有自己的实例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多