【问题标题】:Fault tolerant Aerospike connection in a Web serviceWeb 服务中的容错 Aerospike 连接
【发布时间】:2015-09-21 07:10:48
【问题描述】:

我需要在 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?

【问题讨论】:

    标签: c# multithreading aerospike


    【解决方案1】:

    客户端管理一个套接字池。如果发生套接字错误或超时,套接字将被丢弃。

    【讨论】:

    • 那么,只写'public static AsyncClient client = new AsyncClient(policy, host, port);'是否安全?并全天候 24/7 使用它?
    • 谢谢。我还应该将 failIfNotConnected = false 添加到策略中,否则我可能会遇到 TypeInitializationException。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多