在 Nacos2.0 版本后支持设置为域名
方式一 升级版本 2.2.1.RELEASE 以上
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<spring-cloud-alibaba-dependencies.version>2.2.1.RELEASE</spring-cloud-alibaba-dependencies.version>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
方式二
将nacos-client 升级到 1.2.1
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>
第二:根据nacos-client:1.2.1的 ip地址 和 port 端口解析
public String callServer(String api, Map<String, String> params, String body, String curServer, String method) throws NacosException {
long start = System.currentTimeMillis();
long end = 0L;
this.injectSecurityInfo(params);
List<String> headers = this.builderHeaders();
String url;
// 这里判断 是否以https:// 或者 http://开始 如果不是以这个开始那么就不会拼接port,否则就会自动配置port
if (!curServer.startsWith("https://") && !curServer.startsWith("http://")) {
if (!curServer.contains(":")) {
curServer = curServer + ":" + this.serverPort;
}
url = HttpClient.getPrefix() + curServer + api;
} else {
url = curServer + api;
}
HttpResult result = HttpClient.request(url, headers, params, body, "UTF-8", method);
end = System.currentTimeMillis();
MetricsMonitor.getNamingRequestMonitor(method, url, String.valueOf(result.code)).observe((double)(end - start));
if (200 == result.code) {
return result.content;
} else if (304 == result.code) {
return "";
} else {
throw new NacosException(result.code, result.content);
}
}
根据上面的代码可以总结出如果是域名的话那么就需要把【http://】或者 【https://】这两个都得加上
类似配置:
server:
port: 9002
spring:
application:
name: cloud-nacos-provider-demo9002
# 以下配置方式的优先级 一 > 二 > 三
# 配置方式一 内部规则
cloud:
nacos:
config:
enabled: false #关闭配置
# server-addr: 127.0.0.1:8848
server-addr: http://6eref8.natappfree.cc
file-extension: yaml
namespace: ec724cce-9fd3-4192-a07f-226950213b72 # 开发环境的namespace
group: TEST_GROUP # 所属组
# 配置方式二 推荐使用 自定义扩展data Id 优先级---数组里索引值越大优先级越高
# config external configuration
# 1.Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新
ext-config[0]:
data-id: cloud-nacos-provider-demo9002-01.properties
# 2. Data Id 不在默认组,不支持动态刷新
ext-config[1]:
data-id: cloud-nacos-provider-demo9002-02.properties
group: GLOBALE_GROUP # 放公共的配置文件
# 3. Data Id 即不在默认的组,也支持动态刷新
ext-config[2]:
data-id: cloud-nacos-provider-demo9002-03.properties
group: REFRESH_GROUP
refresh: true
# 配置方式三 合并配置 不推荐使用 自定义共享 data Id
# shared-dataids: cloud-nacos-provider-demo9002-01.properties,cloud-nacos-provider-demo9002-02.properties,cloud-nacos-provider-demo9002-03.properties #默认在default-group
# refreshable-dataids: cloud-nacos-provider-demo9002-03.properties