2017-01-31 7 views
2

Apache Ignite Distributed Queueを使用する予定です。Apache Ignite - Distibuted QueueとExecutors

私はスプリングブートアプリケーションでIgniteを使用しています。したがって、起動時には、20の名前をキューに追加します。しかし、クラスタ内に3台のサーバがあるため、同じ20の名前が3回追加されます。しかし、私はキューに一度だけ追加したい。

Ignite ignite = Ignition.ignite(); 

IgniteQueue<String> queue = ignite.queue(
    "queueName", // Queue name. 
    0,   // Queue capacity. 0 for unbounded queue. 
    null   // Collection configuration. 
); 

分散エグゼキュータは、キューからポーリングしてタスクを実行できます。ここでは、エグゼキュータはポーリングしてタスクを実行し、同じ名前をキューに追加することが期待されます。ここでラウンドロビンを達成しようとしています。 クラスタ内に複数のサーバーが存在するにもかかわらず、1人のエグゼキュータだけがいつでも同じタスクを実行する必要があります。

これに関するご提案があります。

答えて

1

キューにデータを書き込むignite cluster singletonサービスhttps://apacheignite.readme.io/docs/cluster-singletonsを起動できます。また、コーディネータノード(クラスタ内の最古のノード)ignite.cluster()。forOldest()。node().isLocal()

+0

の両方からデータを追加できますか?私は、ignite.cluster()。forOldest()。node().isLocal()をチェックするだけでいいと思います。 – user1578872

+0

はい、最も古いノードで十分でしょうか。 –