愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第2集 微服务的网关SpringCloud Gateway介绍
第3集 SpringCloud Gateway项目创建和依赖添加
第4集 SpringCloud Gateway网关整合Nacos开发实战
第1集 什么是微服务的网关和应用场景
简介:介绍什么是微服务的网关和应用场景
-
什么是网关
-
API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能
-
统一接入
- 智能路由
- AB测试、灰度测试
- 负载均衡、容灾处理
- 日志埋点(类似Nignx日志)
-
流量监控
- 限流处理
- 服务降级
-
安全防护
- 鉴权处理
- 监控
- 机器网络隔离
-
-
主流的网关
- zuul:是Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用,依赖组件比较多,性能教差
- kong: 由Mashape公司开源的,基于Nginx的API gateway
-
nginx+lua:是一个高性能的HTTP和反向代理服务器,lua是脚本语言,让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求
-
springcloud gateway: Spring公司专门开发的网关,替代zuul
-
注意:AlibabaCloud全家桶还没对应的网关,我们就用SpringCloud官方推荐的Gateway
第2集 微服务的网关SpringCloud Gateway介绍
简介:介绍网关SpringCloud Gateway
-
什么是 SpringCloud Gateway
- Spring官方出品,基于Spring5+Reactor技术开发的网关
- 性能强劲基于Reactor+WebFlux、功能多样
- 基于springboot2.x, 直接可以jar包方式运行
-
官方文档
第3集 SpringCloud Gateway项目创建和依赖添加
简介:创建SpringCloud网关项目和依赖添加
-
创建Gateway项目
- 添加依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
- 配置实战
server: port: 8888 spring: application: name: api-gateway cloud: gateway: routes: #数组形式 - id: order-service #路由唯一标识 uri: http://127.0.0.1:8000 #想要转发到的地址 order: 1 #优先级,数字越小优先级越高 predicates: #断言 配置哪个路径才转发 - Path=/order-server/** filters: #过滤器,请求在传递过程中通过过滤器修改 - StripPrefix=1 #去掉第一层前缀 #访问路径 http://localhost:8888/order-server/api/v1/video_order/list #转发路径 http://localhost:8000/order-server/api/v1/video_order/list #需要过滤器去掉前面第一层
-
配置项怎么看?
- 点击routes进去
第4集 SpringCloud Gateway网关整合Nacos开发实战
简介:讲解Gateway配置Nocas和实战
-
原先存在的问题
- 微服务地址写死
- 负载均衡没做到
-
添加Nacos服务治理配置
- 网关添加naocs依赖
<!--添加nacos客户端--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
- 启动类开启支持
@EnableDiscoveryClient
- 修改配置文件
server: port: 8888 spring: application: name: api-gateway cloud: nacos: discovery: server-addr: 127.0.0.1:8848 gateway: routes: #数组形式 - id: order-service #路由唯一标识 #uri: http://127.0.0.1:8000 #想要转发到的地址 uri: lb://xdclass-order-service # 从nacos获取名称转发,lb是负载均衡轮训策略 predicates: #断言 配置哪个路径才转发 - Path=/order-server/** filters: #过滤器,请求在传递过程中通过过滤器修改 - StripPrefix=1 #去掉第一层前缀 discovery: locator: enabled: true #开启网关拉取nacos的服务 ## 访问路径 http://localhost:8888/order-server/api/v1/video_order/list