問題タブ [enterprise-integration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 同時消費者はまだ秩序を確保する
非常に高速(> 100,000 /秒)で入力されるJMSキューがあります。
同じエンティティに関連する複数のメッセージが毎秒存在する可能性もあります。(エンティティに対するいくつかの更新。更新ごとに異なるメッセージとして表示されます。)
一方、このメッセージを処理して他のアプリケーションに送信するコンシューマーが1つあります。
現在、消費者は着信メッセージの速度に対応できないため、セットアップ全体の速度が低下しています。
コンシューマーがメッセージを処理する速度にはSLAがあるため、プロセスを高速化するために複数のコンシューマーを並行して動作させるというアイデアを検討してきました。
だから、私がやろうと思っているのは
- キューで独立して動作する複数のコンシューマー。
- 各消費者は自由にメッセージを取得できます。
- メッセージを取得したら、エンティティの最新バージョンであることを確認してください。このため、一部、このエンティティを処理するアプリケーションで確認できます。
- 最新でない場合は、バージョンを上げて再試行してください。
私はこれまで統合パターン、JMSドキュメントを調べてきましたが成功しませんでした。
既知のAPI、Javaの世界のパターンとともに、よりエレガントな方法でこの問題に取り組むためのアイデアを歓迎します。
.net - キャメル/スプリング統合のような統合フレームワーク.NET
私は現在、次のようなさまざまな通信方法で複数のシステムを統合するための優れたフレームワークを探しています。
- FTP
- 郵便
- 列
- ウェブサービス
.NETアプリケーションで。Javaの場合、利用できるオプションはたくさんあるようですが、.NETプラットフォームに似たものは見つかりませんでした。
spring - 以前の機能を維持しながら Spring Integration を拡張しますか?
だから私はSpring Integrationに不慣れで、ほとんどSpringにも慣れていないので、すべての用語を理解していないかもしれませんが、次のシナリオに出くわしています:
3 つの SI フローを持つ小さな Spring Integration アプリケーションがあります...各フローには独自のゲートウェイがあり、各ゲートウェイには独自の要求チャネルと応答チャネルがあります。これらのフローは、null 呼び出し (集中的な目的のため... 基本的には「GO」シグナル/空のメッセージのみ) を受け取り、(些細な) ビジネス ロジックの結果に応じて、ステータス メッセージで応答します。
これらの各フローを 1 つの「マスター フロー」で実行するように接続して、個別に実行する機能を奪うことなく、1 つの要求が与えられるようにしたいと思います。また、アノテーション / XML (IE.メイン ゲートウェイのサービス インターフェイスを呼び出すコントローラーがあれば、追加のコードを注釈 / XML 構成の外部に記述する必要はありません。)
これは実行可能ですか、そのためにどの統合コンポーネントを使用する必要がありますか、および/またはこれらのゲートウェイのそれぞれがエンドツーエンドで互いに会うために予想されるチャネルを調整する必要がありますか (そうであれば、その戦略はどのようになりますか?ケースバイケースで各フローを呼び出すことができるように補正します)?
さらに、これが実現不可能な場合、サービス アクティベーターを使用して各子フローを呼び出すことが適切でしょうか? これ以上コーディングを避けたかったのですが、それが唯一の選択肢である場合は、そうしなければならないと思います。
ありがとう!
java - 同じメッセージチャネルで複数のタイプを許可するようにパブリッシュサブスクライブパターンを一般化するための適切なパターンは何ですか?
イベントが単一のチャネルにパブリッシュされるSpringパブリッシュサブスクライブセットアップを使用しています。
さまざまなイベントは互いにまったく異なり、タイプからリスナーの動作を導き出すのは面倒です。
私は十分なタイプを持っていますが、さまざまなタイプを処理するためのさまざまなメッセージチャネルの急増に慣れていないので、可能であればこれを防ぎたいと思います。
soa - エンタープライズ統合パターンソリューション描画ツール
EIPの観点から特定のユースケースソリューションをマッピングするために利用できる描画ツールがあるかどうかを知りたいです。MSVisio用のステンシルとOpenOffice用のSVG代替品があります。ステンシルの形状は良好ですが、プレゼンテーションに最適なグラフィックではないようです。EIPを描画するために利用できる代替手段はありますか?前もって感謝します。
java - Camel を使用したメッセージ リスナー
いくつかの本 (Camel in Actions) といくつかのチュートリアルを読んで Camel がどのように機能するかを理解しようとしていますが、実際には理解できないことがあります。基本的に、ユーザーが Web ページをクリックして特定のアクションを実行するたびに、Web アプリケーションからいくつかの Rabbit キューに送信されるいくつかのメッセージを処理する必要があります。
Maven プロジェクトを作成し、このプロセスを処理する構成ルートを定義します。私の疑問は、そのプロセスの実行に関連しています。私がよく理解していれば、使用して実行すると
CamelContext のインスタンスを作成し、キューを処理します。しかし、プロセスがキューで新しいメッセージを待っているかどうかは明らかではありません。リスナーやデーモンなど、キューで新しいメッセージを積極的にチェックするものを作成する必要がありますか、それとも Spring を使用して構成できますか?
御時間ありがとうございます!
アンドレア
java - Camel CBR と POJO プロパティ検査
Order
インスタンスをルーティングする Camel ルートがあります。
特定Order
の が の注文である場合、 などWidget
にルーティングする必要があります。direct:widgets
私は各when(...)
メソッドの中に何を入れるべきかについて窒息しています。私が持っているのは合法的な Camel DSL 構文ではなく、私が達成したいことを説明するために使用されます。
だから私は尋ねます:私が探している種類のルーティングを達成するために、各メソッドに何を入れますか? when(...)
前もって感謝します!
java - Spring Integration: 順序付けられたサブスクライバーを使用したパブリッシュ/サブスクライブ チャネルでの例外処理
タスク エグゼキューターで構成されたパブリッシュ/サブスクライブ チャネルが与えられた場合、例外がスローされた場合に、順序付けられたサブスクライバーの呼び出しが中断される可能性はありますか?
たとえば、この例では、「worked」メッセージは、シーケンス内の 2 番目のサービス アクティベーターによって引き続き送信されます。私はこれが起こらないことを望みます。
File
これの実際の使用例は、aが 2 つのサブスクライバーに発行され、1 つはコンテンツの解析用で、もう 1 つは S3 へのアーカイブ用であるという点で、やや複雑です。シーケンスが適用されるため、両方のタスクが完了したら、後で集約して削除できます。
S3 アップロードは、応答を返さないアウトバウンド チャネル アダプターで実現されます。order
そのため、最初に S3 アダプターを (属性を使用して) 呼び出してからブリッジに送信するパブリッシュ/サブスクライブ チャネルがありFile
、ブリッジはそれを、集約されたメッセージを収集するチャネルに配置します。
S3 アップロードが失敗した場合、ファイルを削除したくないので、アップストリーム チャネルの 2 番目のサブスクライバーを呼び出してはなりません。
java - Camel Splitter は、NotifyBuilder によって表示される不適切な数の Done Exchange を生成しますか?
Camel 2.10.3を使用しています。
次のようなルートがあるとします。
そして、NotifyBuilder に続いてそれを実行し、スプリッターが本来すべきことを行っていることをアサートするテスト クラス。
また、sampleEventsInArrayJsonString が次のような json 配列であるとします。
そのjson配列には7つのオブジェクト要素があります。
テストはすぐに失敗します。ただし、テストの出力には、"Received: {}" の 7 つのログ メッセージが明確に表示されます。
さて、ここが楽しい部分です... NotifyBuilder で .whenExactlyDone(8) を設定すると、テストに合格します。その8番目のメッセージは一体どこから来ているのでしょうか? このテストは有効であると言いたいだけでなく、少なくともメッセージがその json 配列から分割されていることがわかっているので (NotifyBuilder の内容を確認していないという事実を無視して)、それを 1 日と呼びたいと思いますが、私は属していないルートを介して送信された 8 番目の交換が実際にあることを懸念しています。NotifyBuilder が、7 ではなく、そのルートを介して行われた 8 つの交換を確認する理由は何ですか?
messaging - EAI - メッセージング ブリッジとメッセージ トランスレータ
Spring Integration と Enterprise Integration Patterns について読んでいます。
Messaging Bridge パターンに行き詰まっています: http://enterpriseintegrationpatterns.com/MessagingBridge.html http://static.springsource.org/spring-integration/docs/2.0.0.M3/spring-integration-reference/html /bridge.html
メッセージ処理に関して、メッセージング ブリッジとメッセージ トランスレータの違いは何ですか? どちらも、異なるフォーマットを必要とする 2 つのエンティティが連携できるようにするものではないでしょうか?