作者:Eddy  历史版本:1  最后编辑:Eddy  更新时间:2024-11-20 15:41

启用nacos作为配置中心

适用版本:3.4.2+;
nacos建议使用1.3.2版本,1.4.x、2.0.x版本存在集群问题;
https://github.com/alibaba/nacos/issues/5344
https://github.com/alibaba/nacos/issues/5346

安装启动Nacos

1.下载nacos;
2.启动nacos,如下图;
详情请看官网:https://nacos.io/zh-cn/docs/quick-start.html

切换依赖

ibps-basic-discovery中进行启用
1.打开pom文件
2.去掉ibps-basic-config-nacos依赖的可选配置optional
修改前:
结果:

<dependency>
    <groupId>com.lc.ibps.cloud</groupId>
    <artifactId>ibps-basic-config-nacos</artifactId>
    <optional>true</optional>
</dependency>

修改后:

<dependency>
    <groupId>com.lc.ibps.cloud</groupId>
    <artifactId>ibps-basic-config-nacos</artifactId>
</dependency>

注:zuul/gateway/oauth2Server/platform/business已经默认引用ibps-basic-discovery项目,不要手动添加该项目的依赖,自建项目如果接入需要显式依赖该项目;

修改配置

1.各个项目中修改*/src/main/resources/config/bootstrap.yml文件,将server-addr修改nacos的地址,如改成172.20.0.1:8848;
4.登陆nacos,添加命名空间ibps,地址是http://172.20.0.1:8848/nacos/index.html 默认账号密码是nacos

nacos配置规则

nacos里面的配置规则是${prefix}-${spring.profile.active}.${file-extension}
  • 示例1:ibps-gateway-provider.yml ==> gateway项目的application.yml

  • 示例2:ibps-gateway-provider-dev.yml ==> gateway项目的application-dev.yml

    以Gateway为例

    nacos配置中心

  • ibps-common-provider.yaml,公共配置,邮箱、应用版本等信息

  • ibps-common-base-provider.yaml,公共基础配置,redis、mq等连接等信息

  • ibps-common-nacos-provider.yaml,nacos服务发现配置

  • ibps-gateway-base-provider.yaml,网关基础配资,超时熔断等信息

  • ibps-gateway-provider.yaml,网关应用配置,端口、连接池配置等信息

  • 删除本地其他yml文件

    bootstrap.yml配置内容

    spring:
     application:
       name: ibps-gateway-provider
     main:
       allow-bean-definition-overriding: true #暂时使用旧的引入多配置方式,后面再处理
       allow-circular-references: true #暂时先允许循环引用,后面再清理业务。做规范
     config:
       use-legacy-processing: true
     cloud:
       nacos:
         config:
           enabled: ${NACOS_CONFIG_ENABLED:true}
           server-addr: ${NACOS_CONFIG_SERVER_ADDR:192.168.3.240:8848}
           # 填写命名空间ID!!!
           namespace: ${NACOS_CONFIG_NAMESPACE:ibps}
           group: ${NACOS_CONFIG_GROUP:test}
           prefix: ${spring.application.name}
           file-extension: yaml
           enable-remote-sync-config: true
           extension-configs:
             - data-id: ibps-common-provider.yaml
               group: ${spring.cloud.nacos.config.group}
             - data-id: ibps-common-base-provider.yaml
               group: ${spring.cloud.nacos.config.group}
             - data-id: ibps-common-nacos-provider.yaml
               group: ${spring.cloud.nacos.config.group}
             - data-id: ibps-gateway-base-provider.yaml
               group: ${spring.cloud.nacos.config.group}