我需要在Web服务中与Aerospike noSQL DB建立持久连接。
在非Web应用程序中,连接是直接的
using (AerospikeClient client = new AerospikeClient("127.0.0.1", 3000))
{
...
}
但是在Web服务应用程序中,为每个请求创建新客户端的代价很高。最佳实践也这样说:"在程序中每个群集只使用一个客户端实例,并在多个线程之间共享该实例。 AerospikeClient和AsyncClient是线程安全的。"
我可以创建一个静态对象,但是如果客户端断开连接,无论是错误还是超时(24小时最长连接生存时间)?任何人都可以提供任何容错代码片段吗? (也许类似于redis模式How does ConnectionMultiplexer deal with disconnects?)
答案 0 :(得分:3)
客户端管理套接字池。如果发生套接字错误或超时,则会丢弃套接字。