例: 異なるアプリケーション間でのメッセージの送信方法

<vm:listener> メッセージソースを使用する代わりに、<vm:consume> 操作を使用して VM キューにあるメッセージをコンシュームできます。

この操作では、メッセージをオンデマンドでコンシュームし、次のことが可能です。

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

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

また、Mule ドメインを使用して、アプリケーション間でメッセージを送信することもできます。Mule 3.x ではサポートされている少数のコンポーネントにドメインが占有されていましたが、Mule 4 ではあらゆるコネクタをドメインに配置できるようになりました。

次のように、ドメインに 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>

次に、同じドメインのアプリケーションにリスナを配置します。

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

次に、同じドメインの 2 番目のアプリケーションからメッセージをパブリッシュします。

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

リスナとパブリッシャはどちらもドメインに定義された同じ設定を参照しています。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub