0

私は Java EE 開発者です。

大量の連続した情報を処理できる低遅延のネットワーク プロトコルについて、だれか提案してもらえないか尋ねたいと思います。

マシン A からマシン B に転送されるデータの負荷がある 2 つのマシン間にプッシュ メカニズムを実装しようとしています。

どんな提案でも大歓迎です(プロトコルおよび/またはプッシュメカニズムについて)

私はリアルタイムシステムについて話している。

プッシュは、サーバーからクライアント (1 対多) に行われます。

転送される各パケットが小さいことを追加したいと思います。しかし、非常に低いレイテンシーで連続して転送する必要があるパケットの負荷があります。

その他の要件: 1. クライアント デバイスは同じネットワーク内にありません (したがって、UDP はここでは関係ないと思います)。Wall St. タイプの遅延を調べています。パケットを紛失した場合、再送信する必要はなくなりました。これは、関連性がなくなった可能性があるためです。

ありがとう

4

4 に答える 4

0

チャットサーバーと同じように、これにはソケット接続が必要です。

私はこの目的のためにXMPPサーバーを使用しましたが、プロジェクトの全期間にわたってサーバーとの単一のソケット接続が確立されます。サーバーはスタンザを送信し、クライアントはそれを解析してそれぞれのアクションを実行します。
カスタムプッシュ通知で大成功を収めました。

XMPPサーバーを使用する代わりに独自のサーバーを作成できますが、数が数百万の場合は、XMPPサーバーを使用する必要があります。リアルタイムの通知に最適です。

独自のソケットサーバーが必要な場合次に、ソケットサーバーを作成し、そのサーバーに接続するために必要なクライアントを作成します。サーバー上のすべての接続を自分で管理する必要があります。データを送信したいときはいつでも、その接続を使用してデータを送受信します。

ソケットを使用する利点の1つは、クライアントが同じ言語である必要がないことです。

良い出発点は http://biese.wordpress.com/2009/06/14/how-to-create-a-simple-java-socket-thread-server/かもしれません

于 2012-06-13T07:58:14.813 に答える
0

レイテンシには多くの部分があるため、これは簡単に答えられる質問ではありません。パブリッシュ/サブスクライブ方法論を構築する場合は、マルチキャスト プロトコルまたは UDP を検討する必要があります。

あなたの要件は何ですか?これらのデバイスは同じフラット ネットワーク上にありますか? 境界 (ファイアウォール、スイッチ、ルーター) を越えますか? これらの小さなことはすべて、全体像の一部です。

UDP とマルチキャストに取り掛かると、パケット損失、パケット再送信、メッセージの順序付け、メッセージの完了、およびその他の多くの処理に対処する必要があります。そのため、ほとんどの場合、これに対処するために Tibco やその他のメッセージ バス テクノロジなどの製品を購入します。

Wall St. タイプの遅延を探している場合は、専用ルーター/ファームウェアの境界に入ります。

また、レイテンシの意味を実際に定義していません。私はあなたのネットワーク遅延を調べます。これは光の速度によって制限されます (申し訳ありませんが、それは法律です!)。

レイテンシは、コードが何らかのイベントに応答する時間でもあります。

編集1:

IP マルチキャストは、適切なネットワーク インフラストラクチャがあれば、十分に理解されており、LAN を介してルーティングできるため、最善の策です。

何かを持っているように見えるオープンソース プロジェクトJGroupsを見ました。Actors Remote Actorsもご覧になることをお勧めします。私はこれらのプロジェクトのいずれも経験がないため、マイレージは異なる場合があります。

商用ソフトウェアについては、Tibco を検討します。彼らの製品パッケージはもうわかりませんが、以前は Tib Rendezvous (Tib RV) と古い製品 (頭の中で名前を思い出せません) があり、両方を使用して市場データを処理していました。 .

于 2012-06-13T17:09:37.230 に答える
0

この問題は通常、ある種のメッセージ キューを使用して解決されます。

Java の世界では、 JMSと呼ばれるメッセージ キュー用の標準 API があり、商用およびオープン ソースのものを含め、選択できる多くの実装があります。私の会社は最近、 RabbitMQの使用を開始することを決定しました。これは、調査した実装の中で最も柔軟で堅牢であると思われたためです。HornetQは、有名な JMS 実装の中で最速であることで有名です。

JMS 実装ではないメッセージ キューもあります。多くの場合、これらはパフォーマンスに重点を置いており、堅牢性などの機能には重点を置いていません。興味深い例には、OpenDDSZeroMQが含まれます。

HornetQ をご覧になることをお勧めします。必要なものにかなり近いはずだと思います。

編集:サードパーティの実装を使用したくないというコメントを見ましたが、自分で実装する必要があります。それは悪い考えです。そうしないでください。適切なサードパーティの実装を使用してください。

于 2012-06-22T15:59:05.547 に答える
0

TIBCO RV については、UDP プロトコルを使用しますが、いわゆるルーター デーモンを使用してネットワーク境界を越えることができるため、それも可能です。

于 2012-06-22T15:34:54.300 に答える