📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.13-7.15

简而言之,当 Elasticsearch 由于配置缺失或不正确而无法建立传输连接时,会发生此错误。这可能是因为传输模块未正确配置,或者传输客户端未正确初始化。要解决此问题,您可以检查 Elasticsearch 配置文件(elasticsearch.yml)以确保传输模块配置正确。此外,确保传输客户端在应用程序中正确初始化。如果您使用的是安全插件,也要确保其配置正确。

日志上下文 #

日志 “transport cannot be null” 的类名是 HttpTlsRuntimeCheck.java. 我们从 Elasticsearch 源代码中提取了以下内容,以供那些寻求深入了解的人参考:

// 如果启用了安全性;但 HTTP 接口未启用 TLS
 if (securityEnabled && false == httpTlsEnabled) {
 if (false == initialized.get()) {
 final Transport transport = transportReference.get();
 if (transport == null) {
 exceptionConsumer.accept(new ElasticsearchException("transport cannot be null"));
 return;
 }
 final boolean boundToLocal = Arrays.stream(transport.boundAddress().boundAddresses())
 .allMatch(b -> b.address().getAddress().isLoopbackAddress())
 && transport.boundAddress().publishAddress().address().getAddress().isLoopbackAddress();