You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Spring Boot连接无端口的Azure托管Elasticsearch

解决Spring Boot连接Azure托管Elasticsearch的UnknownHostException问题

问题根源

你在connectedTo()方法中传入了带https://前缀的完整URL,Spring Data Elasticsearch的ClientConfiguration会将整个字符串当作主机名解析,导致出现java.net.UnknownHostException: https:MyCustomAzureURLwithoutPort.com错误——它把https:当成了主机名的一部分。

解决方案步骤

  • 去掉URL的协议前缀:connectedTo()只需要传入主机名,比如MyCustomAzureURLwithoutPort.com,不要带https://
  • 显式启用SSL:Azure托管的Elasticsearch默认使用HTTPS,必须在配置中开启SSL支持
  • 保留BasicAuth配置:你的用户名密码认证逻辑是正确的,继续保留

完整配置类示例

import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.elc.ElasticsearchConfiguration;

@Configuration
public class ElasticConfig extends ElasticsearchConfiguration {

    @Override
    public ClientConfiguration clientConfiguration() {
        String elasticHost = "MyCustomAzureURLwithoutPort.com";
        String username = "你的用户名";
        String password = "你的密码";

        return ClientConfiguration.builder()
                .connectedTo(elasticHost)
                .usingSsl() // 启用SSL,适配HTTPS连接
                .withBasicAuth(username, password)
                .build();
    }
}

额外验证点

  • 如果你的Azure Elasticsearch集群有自定义端口(非默认443),可以在主机名后加端口,比如MyCustomAzureURLwithoutPort.com:9243
  • 确保你的Spring Boot应用所在环境能访问Azure Elasticsearch的公网地址,没有防火墙或网络策略拦截

内容的提问来源于stack exchange,提问作者Deery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:51:24