目的:需要根据不同的配置参数,连接不同的ES,应产生两个ES连接对象
目前代码是单例模式,即使传不同的参数,仍然是使用同一个对象实例。
type ES struct {
client *elastic.Client //查询ES
prefix string
}
var esHandle *ES
var esOnce sync.Once
func NewES(prefix string, user, password string, retryStrSlice, urls []string, encrypt bool) *ES {
es := &ES{}
if err := es.Init(prefix, user, password, retryStrSlice, urls, encrypt); err != nil {
panic(err)
return es
}
return es
}
func GetES(prefix string, user, password string, retryStrSlice, urls []string, encrypt bool) *ES {
esOnce.Do(func() {
esHandle = NewES(prefix, user, password, retryStrSlice, urls, encrypt)
})
return esHandle
}