14

さまざまなホストで実行されているさまざまな JVM 間でイベントを生成および処理するために、Java でかなり高速なイベント処理メカニズムを探しています。

単一の JVM で複数のスレッドにまたがるイベント処理については、Jetlang のような有力候補をいくつか見つけました。しかし、分散型の同等のものを探したところ、優れたパフォーマンスを提供するのに十分なほど軽量なものは見つかりませんでした。

法案に合った実装を知っている人はいますか?

編集: パフォーマンスを示すために数字を入れるのは少し難しいです。ただし、たとえば、イベントを使用してハートビート メカニズムを実装し、ハートビート間隔が 5 秒の場合、ハートビート レシーバーは送信されたハートビートを 1 ~ 2 秒以内に受信する必要があります。

一般に、軽量の実装で良好なパフォーマンスが得られます。優れたパフォーマンスを実現するために強力なハードウェア (決して軽量ではない) を必要とする Web サーバーまたはあらゆる種類の集中型ハブを含むイベント処理メカニズムは、私が探しているものではありません。

4

10 に答える 10

9

Hazelcast Topic は、分散 pub-sub メッセージング ソリューションです。

public class Sample implements MessageListener {

    public static void main(String[] args) { 
        Sample sample = new Sample();
        Topic topic = Hazelcast.getTopic ("default");  
        topic.addMessageListener(sample);       
        topic.publish ("my-message-object");
    }  
     
    public void onMessage(Object msg) {
        System.out.println("Message received = " + msg);
    } 
}

Hazelcast は、分散キュー、マップ、セット、リストのイベントもサポートしています。すべてのイベントも注文されています。

よろしく、

-タリップ

http://www.hazelcast.com

于 2008-10-29T17:20:15.183 に答える
4

ユースケースによっては、テラコッタが最適な選択肢となる場合があります。

于 2008-10-08T04:25:05.747 に答える
3

AMQP(Advanced Message Queuing Protocol)-詳細: http: //en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocolはおそらくあなたが探しているものです。

これは、金融サービス会社が高いパフォーマンス要件のために使用しています-apacheには実装があります-http://cwiki.apache.org/qpid/

OpenAMQ- http: //www.openamq.org/は古いリファレンス実装です。

于 2008-10-08T04:23:09.870 に答える
3

分散イベント処理には、Esperを使用できます。デュアル CPU 2GHz Intel ベースのハードウェアで最大 500 000 イベント/秒を処​​理できます。多くの銀行がこのソリューションを使用しているため、非常に安定しています。Spring JMS テンプレートに基づく JMS 入出力アダプターをサポートします。したがって、イベント処理に任意の JMS 実装、つまりActiveMQを使用できます。

于 2008-10-29T17:30:07.397 に答える
3

ZeroMQ - http://www.zeromq.org/

これはトランスポート層ですが、イベント処理用に調整できます。

于 2011-12-28T23:59:30.193 に答える
1

akka (http://akka.io/) をご覧ください。Java と scala の両方の API を使用して、JVM の erlang と同じ流れで分散アクター モデルを提供します。

于 2012-01-11T13:17:59.753 に答える
1

どのツールを使用する場合でも、アプリケーション ロジックからミドルウェア API を隠すことをお勧めします。たとえば、Apache Camel アプローチを使用してミドルウェアを非表示にした場合、正確な要件に基づいて、AMQP から SEDA、JMS、ActiveMQ、JavaSpaces、独自のカスタム MINA トランスポートに簡単に切り替えることができます。

メッセージ ブローカーを使用する場合は、Apache ActiveMQ を使用することをお勧めします。Apache ActiveMQは、最も人気があり強力なオープン ソース メッセージ ブローカーであり、Apache の内部と外部の両方で最大かつ最も活発なコミュニティが背後にあります。

于 2008-10-08T09:26:10.570 に答える
0

Avis イベント ルーターがニーズに適している場合があります。これは、リモート マウス コントロール (日常的に使用するアプリケーション) 用のマウス イベントの送信など、ほぼリアルタイムのイベント配信に十分な速さです。

Avis はチャット、バーチャル プレゼンス、スマート ルーム オートメーションにも使用されており、通常は 10 ~ 20 台のコンピューターが Avis ベースのメッセージング バスを介して通信しています。その商業的ないとこ (Mantara Elvin) は、大量の商取引イベントの処理に使用されます。

于 2009-07-15T05:31:08.030 に答える
0

JMS の実装が適切でない場合は、 XMPPアプローチに興味があるかもしれません。複数の実装があり、Publish-Subscribe 拡張機能もあります。

于 2008-10-13T16:54:12.803 に答える