3

我能够根据 mule 文档使用mule-ha-bundle-2.0设置集群,但在同一网络中连接的两台不同机器中的两个节点,并且可以部署具有如下所示的 vm 和 logger 的流。

<flow name="vmc-flow" doc:name="vmc-jc-flow">
    <vm:inbound-endpoint exchange-pattern="one-way"
        path="vmq1" doc:name="vmq1-listner" />
    <logger
        message="Request hit to server: #[server.host] at time: #[server.dateTime] from the flow: #[flow.name] with payload: #[payload] and message id : #[message.id.toString()]"
        level="INFO" doc:name="log-info" />
</flow>

现在我的问题是:如何将消息推送到那个特定的 vm-queue?

我有一个使用过的另一个(下面)mule 应用程序,它再次部署在同一个集群上,但监听器'vmq1'没有使用这些应用程序

<spring:beans>
    <context:property-placeholder location="test-cluster-app.properties" />
</spring:beans>

<flow name="test-vmc-invoke" doc:name="test-vmc-invoke">
    <http:inbound-endpoint exchange-pattern="request-response"
        host="${http.host}" port="${http.port}" doc:name="HTTP" path="${http.path}" />
    <expression-filter expression="#[payload !='favicon.ico']"
        doc:name="filter-favicon" />
    <set-payload value="#[string:from http]" doc:name="set-payload" />
    <logger
        message="sending message to vmq1 at time #[server.dateTime], flow #[flow.name]"
        level="INFO" doc:name="log-info" />
    <vm:outbound-endpoint exchange-pattern="one-way"
        path="vmq1" doc:name="vmq1-dispatcher">
    </vm:outbound-endpoint>
</flow>

注意:我能够点击 http 并将消息推送到“vmq1”

请帮助我了解我哪里出错了。

4

2 回答 2

3

来自用户指南: http: //www.mulesoft.org/documentation/display/current/VM+Transport+Reference#VMTransportReference-Considerations

警告

Mule 实例中的每个应用程序都有自己独特的 VM 端点集。因此,VM 传输不能用于不同 Mule 应用程序之间的通信。

因此,您不能使用 VM 端点来建立应用程序间通信。请改用 JMS 端点。

于 2014-05-08T16:11:14.437 回答
2

在这里您可以找到有关如何在不同的 Mule 应用程序中使用共享资源的链接。

此时只能将以下连接器和相关规范指定为共享资源: HTTP/HTTPS VM JMS JMS 缓存连接工厂数据库 WMQ JBoss 事务管理器 Bitronix 事务管理器

请注意,VM 传输是一项企业功能。不过,其他类型也可能对您的情况有用,例如 HTTP 或 JMS。

于 2014-08-24T11:24:04.623 回答