異なるシステムからメッセージブローカー(現在はJMS)経由でメッセージを受信するシステムを構築しています。すべての送信者システムからのすべてのメッセージにはdeviceIdがあり、メッセージの受信には順序がありません。 たとえば、システムAはdeviceId = 1のメッセージを送信でき、システムb beはdeviceId = 2のメッセージを送信できます。統合パターン:複数のシステムから受信した処理メッセージを同期する方法
私は、同じdeviceIdを持つすべての送信者からすべてのメッセージを受け取らない限り、同じdeviceIdに関するメッセージの処理を開始しないことを目標にしています。例えば
、私は3つの系統A、BおよびCは、私のシステムにメッセージを送信している場合:
System A sends messageA1 with deviceId=1
System B sends messageB1 with deviceId=1
System C sends messageC1 with deviceId=3
System C sends messageC2 with deviceId=1 <--- here I should start processing of messageA1, messageB1 and messageC2 because they are having the same deviceID 1.
この問題は、メッセージ・ブローカまたはANで、私のシステムでは、いくつかの同期メカニズムを使用することによって解決しなければならないが春の統合/ apacheのラクダのような統合フレームワーク?
サービスがシステムから同じdeviceIdを持つ2つのメッセージを受信しても問題はありませんか?別々のメッセージを1つずつ処理しますか?例(deviceId = 1): 'messageA1、messageA1、messageA1、messageC1、messageC1、messageB1' - >プロセスが起動しました – mgyongyosi
いいえ問題ありません...重要なのは、処理しなければならないデータが含まれているため、3つのメッセージがすべて到着したときに処理を開始することです –