2017-06-15 4 views
2

Ich schreibe eine Back-End-Anwendung, die eine Anfrage von Clients erhalten soll und einige Operationen mit ignite cache ausführen soll. Das Problem ist, dass ich eine Antwortzeit mit niedriger Latenz benötige und den Clientknoten Ignite neu erstellen muss, um eine Operation mit Cache auszuführen, ist völlig inakzeptabel.Caching zünden Client-Knoten

Ist es üblich, Ignite Client-Knoten einmal beim Start der Anwendung zu erstellen und dann zu jeder Zeit die Back-End-Anfrage von Client, der einige Operationen mit Ignite-Cache benötigt. Ich meine etwas in der Art:

public class Handler{ 

    private static final Ignite igniteClient; 
    static{ 
     Ignition.setClientMode(true); 
     igniteClient = Ignition.start(); 
    } 
    private final Semaphore semaphore = new Semaphore(5); 

    private void handle(){ 
     semaphore.acquire(); 
     //use igniteClient 
     semaphore.release(); 
    } 
} 

Antwort

3

Ja, es ist üblich, Ignite Client-Knoten beim Start der Anwendung zu erstellen und dann wieder zu verwenden.

Darüber hinaus ist es keine gute Idee, einen neuen Client für jede Anforderung zu erstellen, da dies zu NODE_JOIN & NODE_LEFT-Ereignissen führt, die zum Erstellen neuer Objekte und Verbindungen für jeden Client auf einem Serverknoten führen.