老师,新版的es8默认是https连接,要怎么调整go客户端呢?
来源:6-6 Go操作ES的一些技巧和注意事项(一)
杂货搬运工
2022-07-28
我的集群启用了https,现在go客户端连接不上,要怎么设置证书呢?
写回答
1回答
-
少林码僧
2022-07-28
在 7-2 项目环境说明 (17:59) 这小节视频中有讲解过,核心在于两个地方
1. 在项目中初始化需要带上 es.WithScheme("https") 设置项初始化的完整代码如下:
//初始化ES func initESClient() { err := es.InitClientWithOptions(es.DefaultClient, global.CONFIG.Elasticsearch.Hosts, global.CONFIG.Elasticsearch.Username, global.CONFIG.Elasticsearch.Password, es.WithScheme("https")) if err != nil { global.LOG.Error("InitClientWithOptions error", err, "client", es.DefaultClient) panic(err) } global.ES = es.GetClient(es.DefaultClient) }2. 如何实现Go sdk对https链接的支持
可以查看我们封装的SDK中的具体实现:
具体代码: https://gitee.com/phper95/pkg/blob/master/es/client.go首先我们定义了用于支持https链接的http client
func getDefaultClient() *http.Client { tr := &http.Transport{ DisableKeepAlives: true, TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } return &http.Client{Transport: tr} }在 InitClientWithOptions 函数中我们我们判断了是否设置了scheme,如果设置了,我们就使用上面定义的http client
if (opt.Scheme) > { esOptions = (esOptions.(opt.Scheme)) esOptions = (esOptions.(())) esOptions = (esOptions.()) }10
相似问题