🚀 作者 :“二当家-小D”
🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k8s等
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
🍅文末获取源码联系 配套笔记打包🍅
🔗往期文章传送门:
一、 微服务核心组件之网关讲解
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