java 微服务 Nacos配置 feign 网关&路由
·
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
过滤器执行顺序
跨域问题处理
限流过滤器
更多推荐
已为社区贡献4条内容
所有评论(0)