我只是无法理解发生了什么事。我的 go 应用程序无法连接到弹性搜索。该节点可用、已启动并正在运行。我在这里做错了什么?
import (
"fmt"
"github.com/olivere/elastic/v7"
"github.com/sirupsen/logrus"
"gitlab.com/codereverie/anuvadak-api-server/app_config"
"gopkg.in/sohlich/elogrus.v7"
"gopkg.in/validator.v2"
"io"
"os"
)
eurl := "http://ip:port"
eUsername := "username"
ePassword := "password"
client, err := elastic.NewClient(elastic.SetURL(eurl), elastic.SetBasicAuth(eUsername, ePassword))
if err != nil {
fmt.Println("Some error", err.Error())
panic("Failed to initialize elastic-search client")
}
Run Code Online (Sandbox Code Playgroud)
这里有什么不正确的地方?错误说no active connection found: no Elasticsearch node available
这是当我在浏览器中点击 GET 请求时从 Elastic Search 返回的数据
{
"name": "ABC-1",
"cluster_name": "ABC",
"cluster_uuid": "3oo05v6lSSmE7DpRh_68Yg",
"version": {
"number": "7.6.2",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date": "2020-03-26T06:34:37.794943Z",
"build_snapshot": false,
"lucene_version": "8.4.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
Run Code Online (Sandbox Code Playgroud)
}
bla*_*ami 12
当您继续启用客户端嗅探但集群没有任何可用节点时,no active connection found: no Elasticsearch node available通常会发生错误。您可以通过点击以下命令来检查集群的状态:。http://host:port/_nodes/http?pretty=true
如果您不禁用嗅探,elasticGolang 客户端将在后台运行进程,每 15 分钟轮询一次/_nodesAPI(上面的 URL)并维护健康节点列表。如果没有健康的节点,则会出现此错误。
当您的集群配置了私有 IP 时(因此在/_nodesAPI 输出中您看到的是私有 IP,而不是公共 IP),这种情况也可能发生(注意:我们在调试问题时与 OP 进行了交谈)。具有嗅探功能的客户端开始轮询,获取节点列表并尝试连接到私有 IP,但会收到 HTTP 错误,因为此类节点没有响应(或者甚至无法在客户端所在的网络中解析)。所以它标志着它已经死亡并进展到另一件事。当集群中不再有节点时,它会报告no active connection found: no Elasticsearch node available。
要禁用客户端嗅探(并直接连接到指定节点 - 但没有任何弹性),您需要添加&sniff=false到弹性 URL。
可以像这样禁用嗅探:
config, _ := config.Parse("http://user:pwd@host:port/index?sniff=false")
client, _ := elastic.NewClientFromConfig(config)
Run Code Online (Sandbox Code Playgroud)
编辑:或(首选)通过配置设置 elastic.SetSniff():
client, _ := elastic.NewClient(..., elastic.SetSniff(false), ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9298 次 |
| 最近记录: |