1.打开方式:在bin目录下运行指令:startup.cmd -m standalone
2.Nacos服务注册或发现
①引入nacos.discovery依赖
②配置nacos地址spring.cloud.nacos.server-addr
3.Naco服务分级存储模型
①一级是服务,例如userservice
②二级是集群,例如杭州或上海
③三级是实例,例如杭州机房的某台部署了userservice的服务器
4.如何设置实例的集群属性
①修改application.yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可
5.NacosRule负载均衡策略
①优先选择同集群服务实例列表
②本地集群找不到提供者,才去其他集群寻找,并且会报警告
③确定了可用实例列表后,在采用随机负载均衡挑选实例
6.实例的权重控制
①Nacos控制台可以设置实例的权重值,0~1之间
②同集群内的多个实例,权重越高被访问的频率越高
③权重设置为0则完全不会被访问
7.命名空间
spring:
cloud:
nacos:
discovery:
namespace: #空间id
命名空间不同的不同集群无法相互访问
8.设置临时实例或为临时实例
spring:
cloud:
nacos:
discovery:
ephemeral: false #非临时实例
临时实例出问题后会被干掉 非临时实例出问题后Nacos会等待其修复
9.多服务共享配置的优先级:
服务名-profile.yaml>服务名称.yaml>本地配置
即远端>本地 环境>多环境共享
### 6.Feign
#### 日志配置
1.配置文件feign.client.config.xxx.loggerLevel
2.java代码配置Logger.level这个Bean
1.在@EnablefeignClients注解声明则代表全局
2.在@FeignClient注解中声明则代表某服务
#### 最佳实践:
1.让controller和FeignClient继承同一接口
2.将FeginClient、POJO、Feign的默认配置都定义到一个项目中,供所有消费者使用
当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用。有两种方式解决:
1.@EnableFeignClients(basePackages="cn.itcast.fegin.clients")
2.@EnableFeignClients(clients={UserClient.class})
### 7.统一网关Gateway
#### 网关功能
身份认证和权限校验
服务路由、负载均衡
请求限流
#### 搭建步骤
1.创建新的模块,引入nacos服务发现和gateway依赖(报错加入版本号 3.0.2)即可
2.配置application.yml,详情见idea项目
#### 过滤器执行顺序
请求路由后,会将当前路由过滤器和DefaultFilter、GlobaFilter,合并到一个过滤器(集合)中,排序后依次执行每个过滤器
每一个过滤器都会指定一个int类型的order值,值越小,优先级越高
GlobalFIlter通过实现Ordered接口,或者添加@Order注解来指定值
路由过滤器和DefaultFilter 的order值由Spring指定,默认按声明顺序从1递增
当过滤器的order值一样是,会按照defaultFilter>路由过滤器>GlobalFilter的顺序执行