缓存点燃客户端节点

Caching ignite client node

我正在编写一个后端应用程序,它应该接收来自客户端的请求并使用 ignite 缓存执行一些操作。问题是我需要低延迟响应时间,并且重新创建 Ignite 客户端节点以使用缓存执行某些操作是完全不可接受的。

在应用程序启动时创建 Ignite 客户端节点,然后在后端收到来自客户端的需要对 Ignite 缓存进行某些操作的请求时随时使用它是否很常见。我的意思是这样的:

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();
    }
}

是的,在应用程序启动时创建 Ignite 客户端节点然后重用它是很常见的。

此外,为每个请求创建新的客户端不是一个好主意,因为它会导致每个 NODE_JOIN & NODE_LEFT 事件的拓扑结构发生变化,从而导致创建新的对象和服务器节点上每个客户端的连接数。