1.初始化mysql数据
优先级--server.port 命令行参数-nacos-properties-yml
nacos里面多个实例的上下线主要给分布式用的 需要有统一网关分发转发服务 nacos判断选择那个实例

无感知下线
修改/usr/local/nginx/nginx.conf中转发路径
./nginx -s reload

sentinel 来对服务进行熔断和降级。    流量管理

实例权重:把性能差的机器权重设低,性能好的机器权重设高,让请求优先打到性能高的机器上去 ribbon   
起多个应用 -Dserver.port=10012  allow parallel run
spring cloud-ribbon默认是没有权重的轮询算法的. 另外这个nacos的权重属性不一定在springcloud 有用到

权重设置为0优雅下线!!!流量就不会进来了
发布:可以直接上线新实例,下线旧实例!!! 做到无感知上下线
ribbon:轮询,随机,充实,权重  @LoadBalanced //配置负载均衡实现RestTemplate   restTemplate.getForObject

永久实例 :实例不管有没有心跳,不健康实例不进行删除  如果关闭了就下线了!!
客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态   
默认心跳间隔5秒;   nacos会在超过15秒未收到心跳后将实例设置为不健康状态;   超过30秒将实例删除   
Nacos 集群默认支持的是CAP原则中的AP原则,但是也可切换为CP原则  AP模式不支持数据一致性,所以只支持服务注册的临时实例,CP模式支持服务注册的永久实例,满足配置文件的一致性
spring.cloud.nacos.discovery.ephemeral=false  默认false永久实例
curl -X PUT '192.168.31.65:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP' 修改为cp

服务雪崩保护->保护阈值   当服务健康比例(健康/总实例) <= 保护阈值时候(0-1),无论实例健不健康都会返回给调用方  虽然不健康的会返回失败,但是不会把所有的流量只给一两个,造成所有服务雪崩。

nacos支持在线管理 动态配置管理!!    
eureka配置不灵活  需要用config    eureka只是界面

重启数据丢失 连接数据库

linux      	 startup.sh -m standalone
windwos   ./startup.cmd -m standalone
单机nacos内置derby数据库   
集群就需要配置mysql了  conf找到sql导入   conf/application.properties文件添加mysql配置

版本太重要了!!!!

1. nacos-服务发现  
1.1bootstrap.properties文件加配置!!!!
spring.application.name=nacos-test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848      //注册中心
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848  //服务注册

1.2@EnableDiscoveryClient 分清楚引入的是eureka的还是alibaba的!!!
1.3注意springboot和spring-cloud-starter-alibaba版本冲突问题!!!!
引入nacos discovery依赖(不能跟eureka的服务发现的依赖spring-cloud-starter-eureka不能同时存在)
<dependency>
	//应该用阿里的<groupId>org.springframework.cloud</groupId>
	<groupId>com.alibaba.cloud</groupId> 
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
	<version>2.2.0.RELEASE</version>
</dependency>

2.nacos-注册中心
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.refresh.enabled=true  //动态刷新
<dependency>
	<groupId>com.alibaba.cloud</groupId>
<!--  用的版本<artifactId>nacos-config-spring-boot-starter</artifactId>-->
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
	<version>2.2.0.RELEASE</version>
</dependency>

多环境的配置  

spring.cloud.nacos.config.group=AAA  指定分组 不写用默认
spring.cloud.nacos.config.namespace 用来隔离空间  隔离配置  不配置默认走public 
spring.profiles.active=test  如果不存在profile配置 就会忽略掉!!
加载dataid 为 ${spring.application.name}-${profile}.${file-extension:properties} 的基础配置
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。!!!!共同配置   有些特殊的可在本地配置!!!

扩展DataId(extension-configs)、
spring.cloud.nacos.config.extension-configs[n].data-id
spring.cloud.nacos.config.extension-configs[n].group
spring.cloud.nacos.config.extension-configs[n].refresh 自动刷新 n越大优先级越高
共享DataId(shared-configs);另外需共享的DataId,yaml后缀不能少!!!!!!!!  从0开始
spring.cloud.nacos.config.shared-configs[n].data-id
spring.cloud.nacos.config.shared-configs[n].group
spring.cloud.nacos.config.shared-configs[n].refresh

数据级别shared<extension<自定义


@Value只是启动会获取赋值  后续不会获取  !!!!程序中如果写了 @Value 注解,可以采用@RefreshScope 实现刷新!!!
ConfigurableApplicationContext  applicationContext.getEnvironment().getProperty("user.age");重新获取

namespace指定空间  group指定组   prefix指定前缀统一(就忽略掉application.name) application.name指定名字 profiles.active指定分支 file-extension 指定尾巴拼接

server.port=10010
spring.profiles.active=test
spring.cloud.nacos.config.prefix=hq
spring.application.name=nacos-test
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.refresh.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848


<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.2.0.RELEASE</version>
	<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test</artifactId>

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter</artifactId>
	</dependency>
	<!-- 1. nacos-服务发现功能依赖 -->
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		<version>2.2.0.RELEASE</version>
	</dependency>

	<!-- 2. nacos-服务配置中心 -->
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
		<version>2.2.0.RELEASE</version>
	</dependency>
		<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-openfeign</artifactId>
		<version>2.2.0.RELEASE</version>
	</dependency>
</dependencies>