1.1 Nacos基本概念

  1. - 一个更易于构建云原生应用的**动态服务发现**、**配置管理**和**服务管理平台**。
  2. - Nacos=Erueka服务注册中心+Config服务配置中心+Bus消息总线
  3. - 框架比对

image.png

1.2 Nacos安装配置

1、本地 Java8 与 maven 环境 ok !!

2、下载地址: https://github.com/alibaba/nacos/tags 自己寻找版本下载,(我自己2.0.2,目前推荐的最稳定的版本)

3、解压进入bin目录,启动startup.cmd(直接启动是集群环境会报错…)
打开cmd命令窗口,输入: startup.cmd -m standalone 启动单机模式
注: wdnmd(唯独你没懂),第一次加载时间超长,可以去吃个饭再回来…

4、cmd命令窗口会显示访问路径的: http://localhost:8848/nacos
账号和密码默认都是nacos

5、Nacos搭建本地数据库,Nacos与Mysql数据库的连接

1.3 基于Nacos的微服务注册中心

  • 微服务provider端的注册配置
    • 1、新建微服务模块module payment9001
    • 2、配置pom.xml文件,整合nacos依赖 ```xml com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
  1. - 3、配置application.yml文件,将微服务注册进nacos
  2. ```yaml
  3. server:
  4. port: 9001
  5. spring:
  6. application:
  7. name: nacos-producer
  8. cloud:
  9. nacos:
  10. discovery:
  11. server-addr: 127.0.0.1:8848
  12. management:
  13. endpoint:
  14. web:
  15. exposure:
  16. include: '*'
  • 4、编写主启动类
  • 5、编写业务类
    • 微服务consumer端的注册配置
  • nacos整合了ribbon依赖,拥有restTemplate读取provider的功能,并默认实现负载均衡的功能。
  • 创建微服务Consumer模块
  • 配置pom.xml,application.yml
  • 新建Configuration类,添加组件Restemplate
  • 编写主启动类、业务类

    1.4 服务注册中心的对比

    1、Spring Cloud Nacos - 图2
    Nacos支持AP和CP模式的切换
    C是所有节点在同一时间看到的数据是一致的;而A的定义是所有的请求都会收到响应。

何时选择使用何种模式?
—般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring cloud和Dubbo服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
如果需要在服务级别编辑或者存储配置信息,那么CP是必须,K8S服务和DNS服务则适用于CP模式。CP模式下则支持注册持久化实例,此时则是以Raft协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误。
切换命令:
curl -X PUT ‘$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP

1.5 Nacos服务配置中心

★nacos读取配置文件的规则:
dataID的格式为:${prefix}-${spring.profiles.active}.${file-extension}

  1. - `prefix` 默认为 `spring.application.name` 的值,也可以通过配置项 `spring.cloud.nacos.config.prefix`来配置。
  2. - `spring.profiles.active` 即为当前环境对应的 profile,详情可以参考 [Spring Boot文档](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles)。 **注意:当 `spring.profiles.active` 为空时,对应的连接符 `-` 也将不存在,dataId 的拼接格式变成 `${prefix}.${file-extension} `****`注:一般情况不允许为空`**
  3. - `file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` `yaml` 类型。
  4. - 举例:
  5. - # ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
  6. - nacos中配置,设置dataid为# nacos-config-client-dev.yaml

读取nacos服务配置中心步骤:

  • 新建module,cloudalibaba-config-nacos-client3377
  • 配置pom.xml文件,整合nacos-config和nacos-discovery依赖
  • 配置云配置优先配置文件bootstrap.yml和本地配置文件application.yml.
  • 根据bootstrap.yml和application.yml.在nacos中创建相关的配置类

image.png

  • 编写主启动类
  • 编写业务类Controller,实现nacos配置中心的配置文件的读取。