問題タブ [distributed]
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 - Java:複数のサーバー間でスレッドを同期する
Windows上のJavaサービスの複数の異なるサーバー間で複数のスレッドの処理を同期する必要があるという問題があります。
このアプリケーションでは、複数のコンシューマスレッドが同じJMSキューからメッセージをプルしています。メッセージは3つまたは4つのグループで送信され、各グループのメッセージが完全に連続して処理されることを確認する必要があります。thread1がメッセージをプルオフし、thread2がそのグループから次のメッセージをプルし、thread2がthread1の処理が完了するのを待ってからメッセージの処理を開始するようにするには、何らかの同期メカニズムが必要です。
スレッドの分散同期メカニズムに関する提案はありますか?あらゆるタイプのソリューションが適しています(JMSソリューション、分散キャッシングなど)。
注:使用しているJMSプロバイダーはActiveMQです。
biztalk - 同期システムでのデータの調整
1 つの Oracle システムが 2 つの別個の CRM システム (PeopleSoft と Siebel) のデータ マスターである状況があります。Oracle システムは、顧客データ、在庫データ、製品情報、および製品価格について、CRUD メッセージを BizTalk に送信します。BizTalk はメッセージをフォーマットし、アクションのために PeopelSoft および Siebel Web サービス インターフェイスに転送します。データの最初の同期後、進行中の操作により、データの配信が成功したにもかかわらず、外部の Siebel および PeopleSoft システムでデータが正確でない状況が作成されました (これは、これらのシステムが「成功」を返すときに何を意味するかについての別の会話です)。 ' BizTalk へ)。
この分散サービス指向のアプローチでシステム データを調整するために、他の同様の実装は何をしますか? 比較のためにすべてのシステムから定期的にダンプを実行していますか? 失敗した更新を見つけて同期を確保するための他の手法や方法はありますか?
あなたの考えや経験は大歓迎です。ありがとう!
追加情報
では、なぜシステムが同期しなくなるのでしょうか? 宛先システムがメッセージを受信したことを BizTalk に通知する場合、それは多くのことを意味します。場合によっては、HTTP 200 は、それを取得してステージング テーブルに配置したことを意味し、後でコミットします。これは成功する場合もあれば、さまざまなデータの問題に対応しない場合もあります。HTTP 200 が意味する場合があります... はい、データを受信してコミットしました。HTTP を使用すると、注文の配信に問題が発生する可能性があります。これらの問題はすべて、事前に多くの建築計画を立てることで解決できたはずです。それは行われませんでした。順序付けられていない配信がデータを踏むのを防ぐための更新/作成タイムスタンプはありません。宛先システムからのデータ通信の完全な往復確認応答はありません。これらはすべて、同期がずれることになります。
.net - .NET クラウドで分散計算を実行するためのフレームワーク
Windows Azureの .NET クラウド環境で実行中の分散計算を簡素化するためのフレームワークを開発することを考えています。
Azure は現在 (おそらくリリース時までには)、クラウドでの分散クエリの単純な実行にはまったく適していません (詳細)。私にとって簡単なのは、クエリを記述できるDryadLINQのようなものです。
クラスター内の複数のマシンでリモートで実行します。面倒な展開、ストレージ、または構成はありません。
この件に関する追加情報 (特にスケジューリングと DAG の最適化) を確認するために、どのリソース、論文、またはオープン ソース プロジェクトをアドバイスできますか?
これまで、Hadoop (Amazon Elastic Map Reduce で使用) と DryadLINQ について掘り下げてきました。明らかに、これにはグーグルが含まれます。
java - JMX で動作する WS-DM のオープン ソース実装はありますか?
WS-DM は、JMX に相当する Web サービスです。オープンソースの実装を探しています...
erlang - Erlangは単一のマルチコアマシンで実行するためだけに設計されていますか、それともプロセスを分散できますか?
私のアプリはクアッドコアマシンでうまく動作します。これは「驚異的並列」であり、約100Kのプロセスを備えているため、マシンのクラスターでの実行に最適です。ただし、クラスター内の使用可能なすべてのノードにこれらすべてのプロセスを分散させる方法に関するドキュメントを見つけるのに苦労しています。
分散Erlangのドキュメントは、各ノードが単一のアプリを実行するクライアントであり、どのノードがどのプロセスを実行するかを手動で指定するサーバークライアントアプリに焦点を当てているようです。
wcf - 多層アーキテクチャで言語翻訳を配置する場所
次のレイヤーでアプリを構築します。
- WEB プレゼンテーション層
- ビジネス ロジック層 - BLL - HTTP Web サービスを介して WEB UI から呼び出される
- WindowsService - ランタイム - net.pipe を介して BLL から呼び出される
BLL は、他の顧客のシステムに統合するために、サード パーティから呼び出すこともできます。
ランタイムまたは BLL で発生する検証エラーがあるとします。翻訳を配置するのに適した場所:
- 例外メッセージで - UICulture を WEB 層から下位層に送信する必要があることを意味します
- BLL とランタイムはエラー コードまたはカスタム例外派生型を返し、変換は WEB UI レイヤーで実行されます
- 他の方法
SOA アーキテクチャで複数の言語をサポートするためのベスト プラクティスは何ですか?
編集:おそらくレイヤーの代わりに層という用語を使用する必要があります。
- WEB UI 層は ASP.NET Web フォームに実装され、IIS の下のサーバー A に展開されます。
- BLL とランタイムはサーバー B にデプロイされますが、プロセス境界によって分離されます (BLL は WCF サービスのために ASP.NET ワーカー プロセスの下で実行され、ランタイムは分離された Windows サービス プロセスとして実行されます)。
distributed - 分散型プロジェクト管理/バグ追跡
DSCM ができたので、配布されているプロジェクト管理/バグ追跡ツールはありますか?
.net - .NET 用の BLOB の分散ストレージ?
永続的な分散ハッシュ テーブルを格納するために、十分にテストされたライブラリとサーバーを探しています。
データは非常にドキュメント指向であり、単一のインデックス (BLOB のハッシュによって計算) を持つ何百万もの ~64KB の BLOB で構成されているため、SQL ベースのソリューションの使用をためらっています。また、長期的なスケーリングのために分散できるようにする必要があります。見通し。
費用と帯域幅を考慮すると、S3 などの外部ソリューションはオプションではありません。
CouchDB や Project Voldemort のようなものが理想的ですが、両方の .NET バインディングが著しく不足しています (PV は Java から IKVMC できますが、「問題」があります)。キーと値の両方がバイト配列です (キーは 16 バイト、値は最大 2048KB 平均 64KB)
これまで、Dynamo、Chord などの .NET ポートの種類を検索してきましたが、結果の大部分は純粋にメモリ内キャッシュであり、永続性やレプリケーションの形式が欠けているようです。
アイデアや提案はありますか?