Nacos配置管理


配置信息我们写有热更新需求的配置就可以了
1.引入Nacos的配置管理客户端依赖:
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml 主要是告诉从哪里去拉取配置
spring:
application:
name: userservice
profiles:
active: dev #环境为开发环境
cloud:
nacos:
server-addr: localhost:8848 #nacos地址
config:
file-extension: yaml #文件后缀名


配置自动刷新


多环境配置共享

Nacos集群搭建

多服务共享配置


http客户端Feign
RestTemplate方式调用存在的问题
Feign的介绍
Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
使用Feign的步骤如下:
1.引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在order-service的启动类添加注解开启Feign的功能:

3.编写Feign客户端:
@FeignClient("userservice")
public interface UserClient {
@GetMapping("/user/{id}")
User findById(@PathVariable("id") long id);
}

4.用Feign客户端代替RestTemplate

自定义Feign的配置

配置Feign日志有两种方式:
Feign的性能优化

Feign的性能优化-连接池配置
Feign添加HttpClient的支持:
1.引入依赖
<!-- feign添加httpClient支持-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
2.配置连接池:

Feign的最佳实践


抽取FeignClient
3:

推荐使用方式2
统一网关
为什么需要网关

网关的技术实现
搭建网关服务
1.创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖:
<!--网关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos服务发现依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.编写路由配置及nacos地址
server:
port: 10010
spring:
application:
name: gateway
cloud:
nacos:
server-addr: localhost:8848 #nacos地址
gateway:
routes:
- id: user-service #路由标识必须唯一
uri: lb://userservice #路由目标地址
predicates: #路由断言,判断请求是否符合规则
- Path=/user/** #路由断言 判断请求路劲是否以/user开头

路由断言工厂Route Predicate Factory
路由过滤器 GatewayFilter

过滤器工厂 GatewayFilterFactory
案例 给所有进入userservice的请求添加一个请求头


默认过滤器

全局过滤器 GlobalFilter



过滤器执行顺序

跨域问题处理

限流过滤器
























