【发布时间】:2018-04-28 20:46:30
【问题描述】:
我正在使用 Golang 和 elastic client。
下面是我的客户端创建逻辑:
if client, err := elastic.NewClient(elastic.SetURL(ElasticsearchURL)); err != nil {
// Handle error
logger.Error.Println(err)
return nil
} else {
return client
}
正确的做法是:
- 在整个应用程序中保持客户端对象单例?
- 为每个请求创建和关闭客户端?
我对以下链接中违反直觉的答案感到困惑:
- where-to-close-an-elasticsearch-client-connection- 建议每个应用一个连接
- how-many-transport-clients-can-a-elasticsearch-cluster-have - 建议每个应用一个连接
- elasticsearch-how-to-query-for-number-of-connections -- 有点表示在服务请求后连接很快就死了
【问题讨论】:
-
您在比较不同类型的客户端并将“连接”与“客户端”混淆。 docs 专门说
NewClient, by default, is meant to be long-lived and shared across your application
标签: elasticsearch go