2017-02-18 2 views
0

Guten Morgen Jungs,Apache Ignite: Remote-Filter-Factory auf kontinuierliche Abfrage setzen

Ich muss wissen, ob mir jemand erklären kann, wie funktioniert der Remote-Filter auf kontinuierliche Abfrage.

Kann ich ein HashSet definieren, um den Cache-Schlüssel zu filtern? Kann mir jemand ein gutes Beispiel geben, um meine Zweifel zu klären? Dies ist mein Code, der nicht funktioniert, wobei Filter ein HashSet ist. Ich denke, dass der Serverknoten nach der Ausführung im Deadlock ist.

  qry.setRemoteFilterFactory(new Factory<CacheEntryEventFilter<String, JSONObject>>() { 
       @Override public CacheEntryEventFilter<String, JSONObject> create() { 
        return new CacheEntryEventFilter<String, JSONObject>() { 
         @Override public boolean evaluate(CacheEntryEvent<? extends String, ? extends JSONObject> e) { 

          return Filter.contains(e.getKey()); 
         } 
        }; 
       } 
      }); 

Vielen Dank im Voraus Jungs.

+0

Willkommen bei Stack Overflow! Bitte nehmen Sie die [Tour] (http://stackoverflow.com/tour), schauen Sie sich um und lesen Sie die [Hilfe] (http://stackoverflow.com/help), insbesondere [Wie frage ich eine gute Frage?] (http://stackoverflow.com/help/how-to-ask) und [Was kann ich hier fragen?] (http://stackoverflow.com/help/on-topic). –

Antwort

0

Es ist nicht klar, woher du die Karte nimmst und was nicht funktioniert. Beachten Sie, dass der Filter auf Serverknoten aufgerufen wird. Daher muss diese Karte ordnungsgemäß serialisiert und an alle Knoten gesendet werden.

Im Allgemeinen basiert der Filter auf einem Schlüssel/Wert-Paar und ist normalerweise zustandslos (z. B. nur Benachrichtigungen über Aktualisierungen für Ereignisse mit einem bestimmten Status). Eine solche Karte ist in großen Datenmengen wahrscheinlich zu groß.

+0

Vielen Dank für Ihr Feedback! Ich vermisste im Servermodus den Knoten zu wechseln. Jetzt funktioniert es!!! – AlessioR