spring cloud中gateway存在的意义是什么?
这个要理解为什么做网关。简单扼要来讲,就是为了处理每个服务都要做的事情。你可以认为是切面变成了服务。
路由,协议转换,鉴权认证,熔断,限流。这些逻辑和你实际的业务代码没太大关系,但是每个业务服务都要搞一个,显得很累赘重复。那怎么办呢?
两种解决思路。
一,使用gateway服务,所有的服务均接入和调用这个gateway,由gateway把这些通用问题处理了,再去请求实际的业务逻辑。gateway是关键节点,瓶颈节点。spring cloud gateway也是这样。它连接了系统的所有方方面面,是个大管家。除了spring cloud gateway,其他的代表还有netty,kong,zuul等
图侵删
二,集成到本地,可以用sidecar,类似一个代理服务器。sidecar就是那种有拖斗的三轮摩托车,旁边的那个人辅助给你观察。下面是sidecar的架构。
图侵删
啊不对,放错了。应该是下面这个。
图侵删
其实万变不离其宗。首先,你确认有一些逻辑是通用的(鉴权,限流,路由),再是你提取了出来(变成了AOP切面逻辑),然后你把他写成一个单独的服务给这个服务用(sidecar),最后,你把这个服务给所有服务用(gateway)。
spring cloud中gateway存在的意义是什么?相关推荐
- Spring Cloud 中文文档
Spring Cloud 官方文档 Spring Cloud为开发人员提供了用于快速构建分布式系统中某些常见模式的工具(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调 ...
- Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?
导读 今天和大家聊一聊在Spring Cloud微服务框架实践中,比较核心但是又很容易把人搞得稀里糊涂的一个问题,那就是在Spring Cloud中Hystrix.Ribbon以及Feign它们三者之 ...
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
在Spring Cloud中我们用Hystrix来实现断路器,Zuul中默认是用信号量(Hystrix默认是线程)来进行隔离的,我们可以通过配置使用线程方式隔离. 在使用线程隔离的时候,有个问题是必须 ...
- Spring cloud网关gateway代理websocket报Max frame length of 65536 has been exceeded
Spring cloud网关gateway代理websocket报io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameExcep ...
- Spring Cloud入门-Gateway服务网关(Hoxton版本)
文章目录 Spring Cloud入门系列汇总 摘要 Gateway 简介 相关概念 创建 api-gateway模块 在pom.xml中添加相关依赖 两种不同的配置路由方式 使用yml配置 使用Ja ...
- Spring Cloud :Gateway 网关限流(五)
目录 一.概述 1. 为什么需要限流 二.限流算法 1. 计数器算法 2. 漏桶算法 3. 令牌桶算法 四.Gateway 限流 1. 添加依赖 2. 配置文件 3. 限流规则配置类 Spring C ...
- Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos /(非阿里组件))
Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos)(非阿里组件) 回溯 Gateway 整合 nacos 方式一(复杂/灵活/常用) 方式 ...
- Spring cloud 2020 gateway nacos 出现503的情况
Spring cloud 2020 gateway nacos 出现503的情况 参考https://blog.csdn.net/weixin_39233623/article/details/121 ...
- Spring Cloud中Hystrix仪表盘与Turbine集群监控
Hystrix仪表盘,就像汽车的仪表盘实时显示汽车的各项数据一样,Hystrix仪表盘主要用来监控Hystrix的实时运行状态,通过它我们可以看到Hystrix的各项指标信息,从而快速发现系统中存在的 ...
最新文章
- jQuery addClass,removeClass,class属性增删
- 怎么在Caffe中配置每一个层的结构
- Android ExpandableListView几个特殊的属性
- OO第四单元——UML及其解析器——总结 暨 OO课程大总结
- Ajax返回值问题思考
- ASP.NET大闲话:ashx文件有啥用
- HDMI和DVI的HDCP握手问题分析及其解决方案精粹
- JavaScript文档对象模型获取body元素对象和获取Html元素对象(3)
- Mac上emacs gpg: 无法检查签名:没有公钥
- 自动将中国ip地址归属地分类并保存到数据库中
- scp 及 ssh 命令出错解决
- [渝粤教育] 西南科技大学 计算机网络应用基础 在线考试复习资料2021版
- 二项分布 (Binomial Distribution)
- 买菜大战,阿里急了?
- 【将门创投】格灵深瞳赵勇:计算机视觉在安防、交通、机器人、无人车等领域的应用...
- 读取网络时间完整代码
- educoder平台哪里有答案_2020青骄第二课堂登陆平台地址入口 青骄第二课堂禁毒知识竞赛入口...
- Matlab 2017a 安装、破解步骤
- 重装Win10系统之U盘启动盘的制作(详细教程)
- C++11标准模板(STL)- 算法 - 数值运算 (std::accumulate)
热门文章
- rn代码与android,RN与原生通讯(安卓篇)
- gradle mysql依赖关系,如何在gradle中找到\删除未使用的依赖关系
- 可口可乐造型设计_瓶型设计的一些观点
- usb模拟串口_USB不被电脑识别,按F8有用吗?这篇文章告诉你
- linux退出python环境_Linux中的python虚拟环境
- 认知心理学告诉你什么才是高效学习
- [Python學習筆記] 在Centos上安裝 Django
- c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
- django 中的用户身份验证和 session 的关系
- You may use special comments to disable some warnings. Use // eslint-disable-next-line……