2017-05-16 12 views
0

いくつかのigniteサーバーノードを実行し、それらから別のクラスタグループを作成したい("WORKER"と呼んでください)。このクラスターグループのノードは、点火キューからのtake()個の要素になり、何らかの方法で処理して、クラスタグループ"CACHE"を持つノード上の何かをキャッシュに入れます。私は指定された構成で./ignite.sh _configuration_を実行することにより、このノードを開始したいと思いますigniteサーバーノードを実行しています

public interface Batch{ } 

public class Runner{ 

    //initialize batchesToProcess as ignite distrubted queue 
    Queue<Batch> batchesToProcess; 

    //I need Ignite here. 
    //@IgniteInstanceResource does not work this way 
    //Because this is just a bean declared in ingite spring configuration 
    private Ignite ignite; 

    public void executeLogic(){ 
     Batch b = batchesToProcess.take(); 
     String cacheName; 
     String key; 
     String value; 
     //process Batch b, get 3 strings 
     //1. cache name 
     //2. key 
     //3. value 
     IgniteCache<String, String> cache = ignite.getOrCreateCache(cacheName); 
     cache.put(key, value); 
    } 

} 

:ここでのように、それがどのように見えるかです。

私はこれを書く方法がわかりません_configuration_これはこの設定ファイルを./ignite.shに供給するだけで実行できます。たぶん私はContextRefreshedEventをキャッチしてthを入れてください

答えて

1

Service Gridこのシナリオでは役に立つかもしれません。サービスを作成し、IgniteConfiguration beanに提供してください。起動時に自動的に展開されます。

+0

非常に良い点、ありがとう。 –

+0

これは実際にはここにあるが、とにかくだ。 igniteは、[ここ](https://apacheignite.readme.io/docs/queue-and-set#section-collocated-vs-non-collocated-mode)(指定されていない場合、私はバッチを処理し、その結果をローカルノード**のキャッシュに入れたいと思っています**(サーザライズとネットワーキングコストを削減するため)。 'IgniteCache'を使って可能ですか? –

+2

親和性ノードにキーを置くことは可能です。最善の方法は、保存する予定のキーの親和性計算を送信することです。詳細はこちら:https://apacheignite.readme.io/docs/affinity-collocation#collocating-compute-with-data – Dmitriy

関連する問題