我正在编写一个后端应用程序,该应用程序应该接收来自客户端的请求并使用点火缓存执行某些操作。问题是我需要低延迟响应时间并重新创建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();
}
}
答案 0 :(得分:4)
是的,在应用程序启动时创建Ignite客户端节点然后重复使用它是很常见的。
此外,为每个请求创建新客户端并不是一个好主意,因为它会导致每个NODE_JOIN&的拓扑更改。 NODE_LEFT事件,导致为服务器节点上的每个客户端创建新对象和连接。