1.1 Nacos基本概念
- 一个更易于构建云原生应用的**动态服务发现**、**配置管理**和**服务管理平台**。- Nacos=Erueka服务注册中心+Config服务配置中心+Bus消息总线- 框架比对
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
- 3、配置application.yml文件,将微服务注册进nacos```yamlserver:port: 9001spring:application:name: nacos-producercloud:nacos:discovery:server-addr: 127.0.0.1:8848management:endpoint:web:exposure:include: '*'
- 4、编写主启动类
- 5、编写业务类
- 微服务consumer端的注册配置
- nacos整合了ribbon依赖,拥有restTemplate读取provider的功能,并默认实现负载均衡的功能。
- 创建微服务Consumer模块
- 配置pom.xml,application.yml
- 新建Configuration类,添加组件Restemplate
- 编写主启动类、业务类
1.4 服务注册中心的对比

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}
- `prefix` 默认为 `spring.application.name` 的值,也可以通过配置项 `spring.cloud.nacos.config.prefix`来配置。- `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} `****`注:一般情况不允许为空`**- `file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` 和 `yaml` 类型。- 举例:- # ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}- 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中创建相关的配置类

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