2

ミドルウェアまたはEAIシステムを介して大量のデータ(MBytes?GBytes?)を処理するメッセージまたは要求/応答を処理するためのグッドプラクティスはありますか?

  • 一貫性を保つためにメッセージとともにデータを転送しますが、おそらくシステム間で大量のデータを数回コピーします

  • データをストアまたはデータリポジトリ(ファイルシステム、データベースなど)に保持し、データへの参照を転送しますが、メッセージとデータの間の緊密な結合は失われます

この問題の一般的な解決策は何ですか?これはEAIまたはミドルウェア製品によってどのようにサポートされていますか?

4

2 に答える 2

0

ソースシステムと宛先システムを直接接続することが現実的である場合は、メッセージを介して参照のみを送信して転送を開始することはできますが、ご指摘のとおり、緩い結合は失われます。

書籍「エンタープライズ統合パターン」によると、メッセージシーケンスパターンを実装できます。

TIBCOなどのEAIシステムでの私の経験では。任意に大量のデータを処理する方法を理解するのは、ほとんどあなた次第です。

于 2009-09-22T16:08:46.377 に答える
0

私の経験では、メッセージのサイズを制限するのは良いことです。私が知っている環境(Websphere MQ、SonicMQ)では、ほとんどのメッセージに5〜10MBが適切な値であることがわかりました。多くの場合、最大100 MBのサイズのメッセージがほとんどなくても問題はありませんが、メモリ消費量について考える必要があります。ほとんどのメッセージングAPI、特にJMSでは、少なくともメッセージは完全に保持されます。一度メモリに保存されます。これにより、並列処理を開始するときに問題が発生する可能性があります。

回避策として使用するものが2つあります。

通常、メッセージに構造化データが含まれている場合は常に最初のソリューションを使用し、メディア配信の場合は2番目のソリューションを使用します。

最初のソリューションでは、特定のソリューションを提供することも使用しない傾向がありますが、このロジックをカスタム実装に実装します。そのため、特定のメッセージングシステムに拘束されることはありません。

于 2010-12-30T14:59:57.597 に答える