09.SpringCloud Alibaba Nacos

男娘i 2023-09-27 13:03 182阅读 0赞

09.SpringCloud Alibaba Nacos

Nacos基础

  • 官网 https://github.com/alibaba/Nacos
  • Nacos 是什么

在这里插入图片描述

  • Nacos下载运行

下载地址:https://github.com/alibaba/nacos/releases/tag/1.2.1

在这里插入图片描述

创建Nacos服务提供者

需求说明/图解

在这里插入图片描述

创建 member-service-nacos-provider-10004并注册到NacosServer8848

  • 创建member-service-nacos-provider-10004

在这里插入图片描述

  • 修改本模块pom.xml

    <?xml version=”1.0” encoding=”UTF-8”?>



    e-commerce-center
    com.hspedu.springcloud
    1.0-SNAPSHOT

    4.0.0

    member-service-nacos-provider-10004






    com.alibaba.cloud
    spring-cloud-alibaba-nacos-discovery




    org.springframework.boot
    spring-boot-starter-web




    org.springframework.boot
    spring-boot-starter-actuator




    org.mybatis.spring.boot
    mybatis-spring-boot-starter




    com.alibaba
    druid-spring-boot-starter

    1.1.17




    mysql
    mysql-connector-java




    org.springframework.boot
    spring-boot-starter-jdbc




    org.projectlombok
    lombok




    org.springframework.boot
    spring-boot-starter-test




    com.hspedu.springcloud
    e_commerce_center-common-api
    ${project.version}




    8
    8


  • 拷贝member-service-provider-10000 的main目录文件
  • 修改application.yml

    server:
    port: 10004

    spring:
    application:

    1. name: member-service-nacos-provider #配置应用的名称

    datasource:

    1. type: com.alibaba.druid.pool.DruidDataSource
    2. url: jdbc:mysql://localhost:3306/e_commerce_center_db?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    3. username: root
    4. password: 123456

    配置nacos

    cloud:

    1. nacos:
    2. discovery:
    3. server-addr: localhost:8848 #配置 Nacos Server的地址

    配置暴露所有的监控点

    management:
    endpoints:

    1. web:
    2. exposure:
    3. include: '*'

    mybatis:
    mapper-locations: classpath:mapper/*.xml #指定mapper.xml文件位置
    type-aliases-package: com.hspedu.springcloud.entity #实体类所在的包,这样通过类名可以引用

  • 创建主启动类
    • @EnableDiscoveryClient 引入Nacos发现的注解

    package com.hspedu.springcloud;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

    // @EnableDiscoveryClient 引入Nacos发现的注解
    @EnableDiscoveryClient
    @SpringBootApplication
    public class MemberNacosProviderApplication10004 {

  1. public static void main(String[] args) {
  2. SpringApplication.run(MemberNacosProviderApplication10004.class,args);
  3. }
  4. }
  • 为看到更好提示,修改Controller

    package com.hspedu.springcloud.controller;

    import com.hspedu.springcloud.entity.Member;
    import com.hspedu.springcloud.entity.Result;
    import com.hspedu.springcloud.service.MemberService;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.*;

    import javax.annotation.Resource;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import java.util.concurrent.TimeUnit;

    @Slf4j
    @RestController
    public class MemberController {

  1. // 装配MemberService
  2. @Resource
  3. private MemberService memberService;
  4. // 查询接口
  5. @GetMapping("member/get/{id}")
  6. public Result getMemberById(@PathVariable("id") Long id, HttpServletRequest request) {
  7. // String color = request.getParameter("color");
  8. // String address = request.getParameter("address");
  9. // 模拟超时,休眠5秒
  10. // try {
  11. // TimeUnit.MILLISECONDS.sleep(5000);
  12. // } catch (InterruptedException e) {
  13. // e.printStackTrace();
  14. // }
  15. Member member = memberService.queryMemberById(id);
  16. if (member != null) {
  17. return Result.success("查询会员成功 member-service-nacos-provider-10004", member);
  18. } else {
  19. return Result.error("402", "ID=" + id + "不存在");
  20. }
  21. }
  22. //编写方法,完成添加
  23. //老韩说明
  24. //1. 我们的前端如果是以json格式来发送添加信息furn, 那么我们需要使用@RequestBody
  25. // , 才能将数据封装到对应的bean, 同时保证http的请求头的 content-type是对应
  26. //2. 如果前端是以表单形式提交了,则不需要使用@RequestBody, 才会进行对象参数封装, 同时保证
  27. // http的请求头的 content-type是对应
  28. //3. 一会老师给小伙伴测试
  29. @PostMapping("member/save")
  30. public Result save(@RequestBody Member member) {
  31. log.info("service-provider member={}",member);
  32. int affected = memberService.save(member);
  33. if (affected > 0) {
  34. return Result.success("添加会员成功 member-service-nacos-provider-10004", affected);
  35. } else {
  36. return Result.error("401", "添加会员失败");
  37. }
  38. }
  39. }
  • 测试
    • 启动Nacos Server 8848
    • 启动member-service-nacos-provider-10004
    • 观察nacos服务是否注册成功
    • 浏览器 http://localhost:10004/member/get/2

创建 member-service-nacos-provider-10006并注册到NacosServer8848

  • 创建member-service-nacos-provider-10006
  • 修改本模块pom.xml

    <?xml version=”1.0” encoding=”UTF-8”?>



    e-commerce-center
    com.hspedu.springcloud
    1.0-SNAPSHOT

    4.0.0

    member-service-nacos-provider-10006






    com.alibaba.cloud
    spring-cloud-alibaba-nacos-discovery




    org.springframework.boot
    spring-boot-starter-web




    org.springframework.boot
    spring-boot-starter-actuator




    org.mybatis.spring.boot
    mybatis-spring-boot-starter




    com.alibaba
    druid-spring-boot-starter

    1.1.17




    mysql
    mysql-connector-java




    org.springframework.boot
    spring-boot-starter-jdbc




    org.projectlombok
    lombok




    org.springframework.boot
    spring-boot-starter-test




    com.hspedu.springcloud
    e_commerce_center-common-api
    ${project.version}




    8
    8


  • 拷贝member-service-nacos-provider-10004 的main目录文件
  • 修改application.yml

    server:
    port: 10006

    spring:
    application:

    1. name: member-service-nacos-provider #配置应用的名称

    datasource:

    1. type: com.alibaba.druid.pool.DruidDataSource
    2. url: jdbc:mysql://localhost:3306/e_commerce_center_db?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    3. username: root
    4. password: 123456

    配置nacos

    cloud:

    1. nacos:
    2. discovery:
    3. server-addr: localhost:8848 #配置 Nacos Server的地址

    配置暴露所有的监控点

    management:
    endpoints:

    1. web:
    2. exposure:
    3. include: '*'

    mybatis:
    mapper-locations: classpath:mapper/*.xml #指定mapper.xml文件位置
    type-aliases-package: com.hspedu.springcloud.entity #实体类所在的包,这样通过类名可以引用

  • 创建主启动类

    package com.hspedu.springcloud;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

    // @EnableDiscoveryClient 引入Nacos发现的注解
    @EnableDiscoveryClient
    @SpringBootApplication
    public class MemberNacosProviderApplication10006 {

  1. public static void main(String[] args) {
  2. SpringApplication.run(MemberNacosProviderApplication10006.class,args);
  3. }
  4. }
  • 为看到更好提示,修改Controller

    package com.hspedu.springcloud.controller;

    import com.hspedu.springcloud.entity.Member;
    import com.hspedu.springcloud.entity.Result;
    import com.hspedu.springcloud.service.MemberService;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.*;

    import javax.annotation.Resource;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import java.util.concurrent.TimeUnit;

    @Slf4j
    @RestController
    public class MemberController {

  1. // 装配MemberService
  2. @Resource
  3. private MemberService memberService;
  4. // 查询接口
  5. @GetMapping("member/get/{id}")
  6. public Result getMemberById(@PathVariable("id") Long id, HttpServletRequest request) {
  7. // String color = request.getParameter("color");
  8. // String address = request.getParameter("address");
  9. // 模拟超时,休眠5秒
  10. // try {
  11. // TimeUnit.MILLISECONDS.sleep(5000);
  12. // } catch (InterruptedException e) {
  13. // e.printStackTrace();
  14. // }
  15. Member member = memberService.queryMemberById(id);
  16. if (member != null) {
  17. return Result.success("查询会员成功 member-service-nacos-provider-10006", member);
  18. } else {
  19. return Result.error("402", "ID=" + id + "不存在");
  20. }
  21. }
  22. //编写方法,完成添加
  23. //老韩说明
  24. //1. 我们的前端如果是以json格式来发送添加信息furn, 那么我们需要使用@RequestBody
  25. // , 才能将数据封装到对应的bean, 同时保证http的请求头的 content-type是对应
  26. //2. 如果前端是以表单形式提交了,则不需要使用@RequestBody, 才会进行对象参数封装, 同时保证
  27. // http的请求头的 content-type是对应
  28. //3. 一会老师给小伙伴测试
  29. @PostMapping("member/save")
  30. public Result save(@RequestBody Member member) {
  31. log.info("service-provider member={}",member);
  32. int affected = memberService.save(member);
  33. if (affected > 0) {
  34. return Result.success("添加会员成功 member-service-nacos-provider-10006", affected);
  35. } else {
  36. return Result.error("401", "添加会员失败");
  37. }
  38. }
  39. }
  • 测试
    • 启动Nacos Server 8848
    • 启动member-service-nacos-provider-10006
    • 观察nacos服务是否注册成功
    • 浏览器 http://localhost:10006/member/get/2

创建Nacos服务消费者

需求说明/图解

在这里插入图片描述

创建member-service-nacos-consumer-80 并注册到NacosServer8848

  • 创建member-service-nacos-consumer-80
  • 修改pom.xml

    <?xml version=”1.0” encoding=”UTF-8”?>
    <project xmlns=”http://maven.apache.org/POM/4.0.0“

    1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    3. <parent>
    4. <artifactId>e-commerce-center</artifactId>
    5. <groupId>com.hspedu.springcloud</groupId>
    6. <version>1.0-SNAPSHOT</version>
    7. </parent>
    8. <modelVersion>4.0.0</modelVersion>
    9. <artifactId>member-service-nacos-consumer-80</artifactId>
    10. <!-- 引入相关的依赖-->
    11. <dependencies>
    1. <dependency>
    2. <groupId>com.alibaba.cloud</groupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    4. </dependency>
    5. <!-- 引入web-starter 我们指定版本仲裁(从父项目继承了版本)-->
    6. <dependency>
    7. <groupId>org.springframework.boot</groupId>
    8. <artifactId>spring-boot-starter-web</artifactId>
    9. </dependency>
    10. <!-- 说明:starter-actuator 是springboot程序的监控系统,可以实现系统的监控检测
    11. 可以通过http://localhost:10000/actuator 看到相关的连接,和信息
    12. -->
    13. <dependency>
    14. <groupId>org.springframework.boot</groupId>
    15. <artifactId>spring-boot-starter-actuator</artifactId>
    16. </dependency>
  1. <!-- lombok-->
  2. <dependency>
  3. <groupId>org.projectlombok</groupId>
  4. <artifactId>lombok</artifactId>
  5. <optional>true</optional>
  6. </dependency>
  7. <!-- 引入e_commerce_center-common-api-->
  8. <dependency>
  9. <groupId>com.hspedu.springcloud</groupId>
  10. <artifactId>e_commerce_center-common-api</artifactId>
  11. <version>${project.version}</version>
  12. </dependency>
  13. </dependencies>
  14. <properties>
  15. <maven.compiler.source>8</maven.compiler.source>
  16. <maven.compiler.target>8</maven.compiler.target>
  17. </properties>
  18. </project>
  • 创建application.yml

    server:
    port: 81

    spring:
    application:

    1. name: member-service-nacos-consumer-80

    配置nacos

    cloud:

    1. nacos:
    2. discovery:
    3. server-addr: localhost:8848 #nacos server的地址
  • 创建主启动类

    package com.hspedu.springcloud;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

    @SpringBootApplication
    @EnableDiscoveryClient // 引入的是启动nacos发现注解
    public class MemberNacosConsumerApplication80 {

    1. public static void main(String[] args) {
    2. SpringApplication.run(MemberNacosConsumerApplication80.class,args);
    3. }

    }

  • 业务类创建

创建 CustomizationBean类

  1. package com.hspedu.springcloud.config;
  2. import org.springframework.cloud.client.loadbalancer.LoadBalanced;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.client.RestTemplate;
  6. /**
  7. * CustomizationBean:配置类
  8. * 配置注入RestTemplate bean/对象
  9. */
  10. @Configuration
  11. public class CustomizationBean {
  12. // 配置注入RestTemplate bean/对象
  13. // 这里的@LoadBalanced 就是赋予RestTemplate 负载均衡的能力
  14. // 默认是使用轮询算法来访问远程调用接口
  15. @Bean
  16. @LoadBalanced
  17. public RestTemplate getRestTemplate(){
  18. return new RestTemplate();
  19. }
  20. }

创建 MemberNacosConsumerController类

  1. package com.hspedu.springcloud.controller;
  2. import com.hspedu.springcloud.entity.Member;
  3. import com.hspedu.springcloud.entity.Result;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.PathVariable;
  7. import org.springframework.web.bind.annotation.PostMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import org.springframework.web.client.RestTemplate;
  10. import javax.annotation.Resource;
  11. @RestController
  12. @Slf4j
  13. public class MemberNacosConsumerController {
  14. //http://member-service-nacos-provider 就是注册到Nacos server 的服务名
  15. public static final String MEMBER_SERVICE_NACOS_PROVIDER_URL =
  16. "http://member-service-nacos-provider"; //后面这里地方会修改成提供服务模块的注册别名
  17. // 装配RestTemplate
  18. @Resource
  19. private RestTemplate restTemplate;
  20. // 方法/接口,根据id调用服务接口返回member对象
  21. @GetMapping("member/nacos/consumer/get/{id}")
  22. public Result getMemberById(@PathVariable("id") Long id) {
  23. return restTemplate.getForObject(MEMBER_SERVICE_NACOS_PROVIDER_URL + "/member/get/"+id,Result.class);
  24. }
  25. // 方法/接口 添加member对象到数据库表
  26. @PostMapping("member/nacos/consumer/save")
  27. public Result<Member> save(Member member){
  28. log.info("service-consumer member={}",member);
  29. // 拼接url
  30. // member:就是通过restTemplate 发出的post请求携带数据
  31. //Result.class :返回对象类型
  32. return restTemplate.postForObject(MEMBER_SERVICE_NACOS_PROVIDER_URL + "/member/save", member, Result.class);
  33. }
  34. }
  • 测试

在这里插入图片描述

浏览器:http://localhost:81/member/nacos/consumer/get/2

在这里插入图片描述

  • 配置自己的负载均衡算法,测试完毕恢复成原来的轮询算法
创建RibbonRule类
  1. package com.hspedu.springcloud.config;
  2. import com.netflix.loadbalancer.IRule;
  3. import com.netflix.loadbalancer.RandomRule;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. /**
  7. * 配置自己的负载均衡算法
  8. */
  9. @Configuration
  10. public class RibbonRule {
  11. // 配置注入自己的负载均衡算法
  12. @Bean
  13. public IRule myRibbonRule(){
  14. // 这里返回的是RandomRule,当然小伙伴也可以自己指定
  15. return new RandomRule();
  16. }
  17. }

Nacos AP和CP切换

各注册中心对比

在这里插入图片描述

选择AP还是CP

在这里插入图片描述

AP和CP切换

在这里插入图片描述

说明

在这里插入图片描述

参考 https://www.jianshu.com/p/c56e22c222bb

Nacos 配置中心实例

需求分析/图解

在这里插入图片描述

在Nacos Server 加入配置

  1. 进入到Nacos Server
  2. 加入配置,后缀名yml

在这里插入图片描述

Data ID: e-commerce-nacos-config-client-dev.yaml

在这里插入图片描述

创建Nacos配置客户端模块 e-commerce-nacos-config-client5000

创建Module

在这里插入图片描述

修改Pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>e-commerce-center</artifactId>
  7. <groupId>com.hspedu.springcloud</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>e-commerce-nacos-config-client5000</artifactId>
  12. <!-- 引入相关的依赖-->
  13. <dependencies>
  14. <!-- 加入 nacos-config stater 场景启动器-->
  15. <dependency>
  16. <groupId>com.alibaba.cloud</groupId>
  17. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  18. </dependency>
  19. <!-- 引入 alibaba-nacos 使用版本仲裁-->
  20. <dependency>
  21. <groupId>com.alibaba.cloud</groupId>
  22. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  23. </dependency>
  24. <!-- 引入web-starter 我们指定版本仲裁(从父项目继承了版本)-->
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-web</artifactId>
  28. </dependency>
  29. <!-- 说明:starter-actuator 是springboot程序的监控系统,可以实现系统的监控检测
  30. 可以通过http://localhost:10000/actuator 看到相关的连接,和信息
  31. -->
  32. <dependency>
  33. <groupId>org.springframework.boot</groupId>
  34. <artifactId>spring-boot-starter-actuator</artifactId>
  35. </dependency>
  36. <!-- lombok-->
  37. <dependency>
  38. <groupId>org.projectlombok</groupId>
  39. <artifactId>lombok</artifactId>
  40. <optional>true</optional>
  41. </dependency>
  42. <!-- 引入e_commerce_center-common-api-->
  43. <dependency>
  44. <groupId>com.hspedu.springcloud</groupId>
  45. <artifactId>e_commerce_center-common-api</artifactId>
  46. <version>${project.version}</version>
  47. </dependency>
  48. </dependencies>
  49. <properties>
  50. <maven.compiler.source>8</maven.compiler.source>
  51. <maven.compiler.target>8</maven.compiler.target>
  52. </properties>
  53. </project>
创建application.yml
  1. spring:
  2. profiles:
  3. active: dev # 指定环境,常见的环境有 dev开发/test测试/prod生产
创建bootstrap.yml
  1. server:
  2. port: 5000 # 端口
  3. spring:
  4. application:
  5. # 这里的name 需要参考nacos 配置中心的Data id
  6. name: e-commerce-nacos-config-client
  7. # 配置nacos
  8. cloud:
  9. nacos:
  10. discovery:
  11. server-addr: localhost:8848 #nacos 服务注册中心地址
  12. config:
  13. server-addr: localhost:8848 #nacos 服务配置中心地址
  14. file-extension: yaml # 指定yaml格式的配置
  15. # 解读
  16. # 1.nacos 配置客户端/当前的微服务模块,会根据配置,找到配置中心的数据(配置)
  17. # 2.nacos.server-addr:loocalhost:8848 可以找到配置中心
  18. # 3.spring.application.name 对应的是 Dataid e-commerce-nacos-config-client
  19. # 4.在application.yml: 配置 spring.profiles.active: dev
  20. # 5.spring.cloud.nacos.config.file-extension 配置文件的扩展名 .yaml
  21. # 6. 小结:根据配置 就是 到loocalhost:8848 下的 e-commerce-nacos-config-client-dev.yaml
  22. # 获取配置信息/数据
  23. # 7.规则就是:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
  24. # 来定位配置中心的 Data ID
主启动类
  1. package com.hspedu.springcloud;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @SpringBootApplication
  6. @EnableDiscoveryClient
  7. public class NacosConfigClientApplication5000 {
  8. public static void main(String[] args) {
  9. SpringApplication.run(NacosConfigClientApplication5000.class,args);
  10. }
  11. }
业务类
  1. package com.hspedu.springcloud.controller;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @Slf4j
  8. public class NacosConfigClientController {
  9. /**
  10. * 1.client 会拉取nacos server 的 e-commerce-nacos-config-client-dev.yaml
  11. * config:
  12. * ip: "122.22.22.22"
  13. * name: "jiang"
  14. * 2.@Value("${config.ip}") 会将config.ip 赋给 configIp
  15. * 3.这里${config.ip}不能乱写,要有依据
  16. */
  17. @Value("${config.ip}")
  18. private String configIp;
  19. @Value("${config.name}")
  20. private String configName;
  21. @GetMapping("nacos/config/ip")
  22. public String getConfigIp(){
  23. return configIp;
  24. }
  25. @GetMapping("nacos/config/name")
  26. public String getConfigName(){
  27. return configName;
  28. }
  29. }
测试
启动 Nacos Server
启动 e-commerce-nacos-config-client5000
浏览器 http://localhost:5000/nacos/config/ip
注意事项和细节

在这里插入图片描述

在这里插入图片描述

@RefreshScope 是springcloud原生注解,实现配置信息自动刷新

Nacos分类配置

DataID方案

需求分析/图解

在这里插入图片描述

解决方案分析
使用Data ID方案解决
配置实现

在这里插入图片描述

修改application.yml 把active修改成test
  1. spring:
  2. profiles:
  3. active: test # 指定环境,常见的环境有 dev开发/test测试/prod生产
测试

http://localhost:5000/nacos/config/ip
在这里插入图片描述

Group方案

需求分析/图解

在这里插入图片描述

解决方案分析
使用Group方案解决
配置实现
配置 订单订单开发微服务模块的 yaml

在这里插入图片描述

配置 秒杀微服务模块的 yaml

在这里插入图片描述

修改application.yml active改成dev
  1. spring:
  2. profiles:
  3. active: dev # 指定环境,常见的环境有 dev开发/test测试/prod生产
修改bootstrap.yml
添加上 spring.cloud.nacos.config.group: order 指定分组
  1. server:
  2. port: 5000 # 端口
  3. spring:
  4. application:
  5. # 这里的name 需要参考nacos 配置中心的Data id
  6. name: e-commerce-nacos-config-client
  7. # 配置nacos
  8. cloud:
  9. nacos:
  10. discovery:
  11. server-addr: localhost:8848 #nacos 服务注册中心地址
  12. config:
  13. server-addr: localhost:8848 #nacos 服务配置中心地址
  14. file-extension: yaml # 指定yaml格式的配置
  15. group: order # 指定order组的配置,默认是DEFAULT_GROUP
测试

http://localhost:5000/nacos/config/ip

Namespace方案

需求分析/图解

在这里插入图片描述

解决方案分析
使用Namespace方案
配置实现
添加百度公司的Namespace

在这里插入图片描述

添加阿里公司的Namespace

在这里插入图片描述

在阿里的Namespance下添加配置

在这里插入图片描述
在这里插入图片描述

在百度的Namespance下添加配置

在这里插入图片描述
在这里插入图片描述

修改application.yml
  1. spring:
  2. profiles:
  3. active: dev # 指定环境,常见的环境有 dev开发/test测试/prod生产
修改bootstrap.yml
添加上 spring.cloud.nacos.config.namespace 指定对应的namespace
  1. spring:
  2. application:
  3. # 这里的name 需要参考nacos 配置中心的Data id
  4. name: e-commerce-nacos-config-client
  5. # 配置nacos
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848 #nacos 服务注册中心地址
  10. config:
  11. server-addr: localhost:8848 #nacos 服务配置中心地址
  12. file-extension: yaml # 指定yaml格式的配置
  13. group: seckill # 指定order组的配置,默认是DEFAULT_GROUP
  14. namespace: 0334af75-332c-4bf0-b9a4-968827fc81e3 # 指定对应的namespace id[阿里]
测试

http://localhost:5000/nacos/config/ip

Namespace/Group/Data id 关系

图解

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,182人围观)

还没有评论,来说两句吧...

相关阅读