如何在MSE上为Spring Cloud应用构建服务注册中心? config center config: username: ${NAOCSUSERNAME} password: ${NAOCSPASSWORD} serveraddr: ${NACOSSERVERADDRESS} namespace: ${NACOSCONFIGNAMESPACE} group: ${NACOSCONFIGGROUP} prefix: 其中 namespace 默认值为空,也就是public命名空间,group 默认值为DEFAULTGROUP, prefix属性为非必要属性,可以按照需要决定是否配置。配置文件中的值既可以配置真实值,也可以配置为从环境变量中获取。 为了方便获取和使用配置,可以自定义配置类。在自定义属性类上需要增加注解,否则远程配置更新是客户端的配置不会自动更新。如下所示,定义了一个前缀为user的属性类,自动绑定user前缀的属性。 @RefreshScope @ConfigurationProperties(prefix "user") public class User implements InitializingBean, DisposableBean { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } @Override public String toString() { return "User{" + "name'" + name + ''' + ", age" + age + '}'; } } 配置完成后,启动应用。在启动应用后查看启动日志,会发现在一般情况下,应用监听三个配置文件而不论这三个远程配置文件是否存在。 [fixedprodIP47588] [subscribe] +paasdefault+prod [fixedprodIP47588] [addlistener] ok, tenantprod, dataId, grouppaasdefault, cnt1 [Nacos Config] Listening config: dataId, grouppaasdefault [fixedprodIP47588] [subscribe] prod.properties+paasdefault+prod [fixedprodIP47588] [addlistener] ok, tenantprod, dataIdprod.properties, grouppaasdefault, cnt1 [Nacos Config] Listening config: dataIdprod.properties, grouppaasdefault [fixedprodIP47588] [subscribe] .properties+paasdefault+prod [fixedprodIP47588] [addlistener] ok, tenantprod, dataId.properties, grouppaasdefault, cnt1 [Nacos Config] Listening config: dataId.properties, grouppaasdefault 默认情况下,监听的配置文件的dataId{prefix}prefix−{spring.profile.active}.${fileextension}。 其中profix默认为${spring.application.name}。 fileextension表示配置的类型,默认为properties。 如果没有指定spring.profile.active,那么dataId就变成了profix.{profix}.profix.{fileextension}。 启动时会发现启动日志中会打出多个: ${prefix} ${prefix}−{spring.profile.active} ${prefix}−{spring.profile.active}.${fileextension} 说明其实是可以匹配配置中心中配置的多条配置名称。匹配优先级是:3>2>1,精确匹配。 通过 控制台更新配置,在应用端可以接收到更新的推送。如果服务端同时存在多个监听的配置,则当更新高优先级的配置时,客户端才会接收到更新。 客户端接收到更新推送,变更为最新的值。至此,说明接入配置中心成功,配置可以动态更新了。