6

現在、hazelcast を使用して分散システムを作成しています。hazelcast を使用して実装されたキューに関していくつか質問があります。

  1. キューからのデータを処理する最良の方法は何ですか? 現在、各「ノード」にスレッドがあり、データを処理しているブロッキング キューを読み取っています。これは正しいですか、それとも、JMS や messageListener のようにこれを処理する、私が認識していないクラスがありますか?
  2. 有効期限が切れるとキューからエントリを削除する有効期限の秒数設定があることがわかります。私の質問は...期限切れのアイテムがキューから削除されたことを検出する方法はありますか? リスナーがあることは知っていますが、これは 1 つだけでなくすべての「ノード」で起動されるため、これは役に立ちません。期限切れのメッセージごとにコードを実行する方法を探しています (デッド レター キューに似ています)。

この件に関するご意見やアドバイスをいただければ幸いです。

ありがとう

4

1 に答える 1

9
  1. 現時点では他に方法はありません。したがって、queue.take() を呼び出す各ノードにスレッドが存在します。Hazelcast チームは、JMS MessageListener と同様に動作する IQueue.addQueueConsumer(QueueConsumer) の追加を計画しています。

  2. あなたが正しいです。リスナーの追加は、非常にコストのかかる操作であるため、良い方法ではありません。http://code.google.com/p/hazelcast/issuesでこれに関する問題を作成することをお勧めします。機能があるのは確かにいいです。

-タリップ@ヘーゼルキャスト

于 2012-02-02T09:46:42.980 に答える