VM Connector の異なるアプリケーション間でのメッセージの送信の例 - Mule 4

以下の例は、異なるアプリケーション間でメッセージを送信する 2 つの方法を示しています。

  • リスナを使用して最初のアプリケーションからメッセージを受信し、Publish 操作を使用して受信したメッセージを 2 番目のアプリケーションに提供します。

  • 2 番目のアプリケーションで Publish 操作を使用してメッセージキューにメッセージをプッシュし、Consume 操作を使用してメッセージをコンシュームします。

どちらの場合でも、2 つのアプリケーションが同じドメインに存在している必要があります。

2 番目のアプリケーションにメッセージをパブリッシュする

  1. 次のように、ドメインに VM 設定を作成します。

    <mule-domain xmlns="http://www.mulesoft.org/schema/mule/domain"
      xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm
      http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
      http://www.mulesoft.org/schema/mule/domain
      http://www.mulesoft.org/schema/mule/domain/current/mule-domain.xsd">
      <vm:config name="sharedVMConfig">
        <vm:queue queueName="sharedQueue" queueType="PERSISTENT" />
      </vm:config>
    </mule-domain>
  2. 同じドメインのアプリケーションにリスナを配置します。

    <flow name="crossAppListener">
    	<vm:listener queueName="sharedQueue" config-ref="sharedVMConfig" />
    	<logger />
    </flow>
  3. 同じドメインの 2 番目のアプリケーションからメッセージをパブリッシュします。

    <flow name="crossAppRequester">
      <vm:publish queueName="sharedQueue" config-ref="sharedVMConfig" />
    </flow>

この例では、Listener および Publish 操作で同じキュー (​sharedQueue​) と同じ設定 (​sharedVMConfig​) を参照しています。

パブリッシュされたメッセージをキューから取得する

<vm:listener>​ メッセージソースを使用する代わりに、​<vm:consume>​ 操作を使用して VM キューにあるメッセージをコンシュームできます。この操作では、メッセージをオンデマンドでコンシュームし、次のことが可能です。

  • 特定の条件に応じて異なるキューから動的にコンシュームする。

  • アプリケーションがメッセージをコンシュームするリズムをより厳しく制御する。

キューのパブリッシュされたメッセージをコンシュームする手順は、次のとおりです。

  1. 次のように、ドメインに VM 設定を作成します。

    <mule-domain xmlns="http://www.mulesoft.org/schema/mule/domain"
      xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm
      http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
      http://www.mulesoft.org/schema/mule/domain
      http://www.mulesoft.org/schema/mule/domain/current/mule-domain.xsd">
    
      <vm:config name="sharedVMConfig">
        <vm:queue queueName="sharedQueue" queueType="PERSISTENT" />
      </vm:config>
    
    </mule-domain>
  2. 同じドメインの 2 番目のアプリケーションからメッセージをパブリッシュします。

    <flow name="crossAppRequester">
      <vm:publish queueName="sharedQueue" config-ref="sharedVMConfig" />
    </flow>
  3. メッセージがパブリッシュされたら、キューからメッセージを取得します。

    <flow name="queueConsume">
      <vm:consume queueName="sharedQueue" config-ref="sharedVMConfig" />
      <logger />
    </flow>

この例では、Publish および Consume 操作で同じキュー (​sharedQueue​) と同じ設定 (​sharedVMConfig​) を参照しています。