这个要理解为什么做网关。简单扼要来讲,就是为了处理每个服务都要做的事情。你可以认为是切面变成了服务。

路由,协议转换,鉴权认证,熔断,限流。这些逻辑和你实际的业务代码没太大关系,但是每个业务服务都要搞一个,显得很累赘重复。那怎么办呢?

两种解决思路。

一,使用gateway服务,所有的服务均接入和调用这个gateway,由gateway把这些通用问题处理了,再去请求实际的业务逻辑。gateway是关键节点,瓶颈节点。spring cloud gateway也是这样。它连接了系统的所有方方面面,是个大管家。除了spring cloud gateway,其他的代表还有netty,kong,zuul等

图侵删

二,集成到本地,可以用sidecar,类似一个代理服务器。sidecar就是那种有拖斗的三轮摩托车,旁边的那个人辅助给你观察。下面是sidecar的架构。

图侵删

啊不对,放错了。应该是下面这个。

图侵删

其实万变不离其宗。首先,你确认有一些逻辑是通用的(鉴权,限流,路由),再是你提取了出来(变成了AOP切面逻辑),然后你把他写成一个单独的服务给这个服务用(sidecar),最后,你把这个服务给所有服务用(gateway)。

spring cloud中gateway存在的意义是什么?相关推荐

  1. Spring Cloud 中文文档

    Spring Cloud 官方文档 Spring Cloud为开发人员提供了用于快速构建分布式系统中某些常见模式的工具(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调 ...

  2. Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?

    导读 今天和大家聊一聊在Spring Cloud微服务框架实践中,比较核心但是又很容易把人搞得稀里糊涂的一个问题,那就是在Spring Cloud中Hystrix.Ribbon以及Feign它们三者之 ...

  3. Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失

    在Spring Cloud中我们用Hystrix来实现断路器,Zuul中默认是用信号量(Hystrix默认是线程)来进行隔离的,我们可以通过配置使用线程方式隔离. 在使用线程隔离的时候,有个问题是必须 ...

  4. Spring cloud网关gateway代理websocket报Max frame length of 65536 has been exceeded

    Spring cloud网关gateway代理websocket报io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameExcep ...

  5. Spring Cloud入门-Gateway服务网关(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Gateway 简介 相关概念 创建 api-gateway模块 在pom.xml中添加相关依赖 两种不同的配置路由方式 使用yml配置 使用Ja ...

  6. Spring Cloud :Gateway 网关限流(五)

    目录 一.概述 1. 为什么需要限流 二.限流算法 1. 计数器算法 2. 漏桶算法 3. 令牌桶算法 四.Gateway 限流 1. 添加依赖 2. 配置文件 3. 限流规则配置类 Spring C ...

  7. Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos /(非阿里组件))

    Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos)(非阿里组件) 回溯 Gateway 整合 nacos 方式一(复杂/灵活/常用) 方式 ...

  8. Spring cloud 2020 gateway nacos 出现503的情况

    Spring cloud 2020 gateway nacos 出现503的情况 参考https://blog.csdn.net/weixin_39233623/article/details/121 ...

  9. Spring Cloud中Hystrix仪表盘与Turbine集群监控

    Hystrix仪表盘,就像汽车的仪表盘实时显示汽车的各项数据一样,Hystrix仪表盘主要用来监控Hystrix的实时运行状态,通过它我们可以看到Hystrix的各项指标信息,从而快速发现系统中存在的 ...

最新文章

  1. jQuery addClass,removeClass,class属性增删
  2. 怎么在Caffe中配置每一个层的结构
  3. Android ExpandableListView几个特殊的属性
  4. OO第四单元——UML及其解析器——总结 暨 OO课程大总结
  5. Ajax返回值问题思考
  6. ASP.NET大闲话:ashx文件有啥用
  7. HDMI和DVI的HDCP握手问题分析及其解决方案精粹
  8. JavaScript文档对象模型获取body元素对象和获取Html元素对象(3)
  9. Mac上emacs gpg: 无法检查签名:没有公钥
  10. 自动将中国ip地址归属地分类并保存到数据库中
  11. scp 及 ssh 命令出错解决
  12. [渝粤教育] 西南科技大学 计算机网络应用基础 在线考试复习资料2021版
  13. 二项分布 (Binomial Distribution)
  14. 买菜大战,阿里急了?
  15. 【将门创投】格灵深瞳赵勇:计算机视觉在安防、交通、机器人、无人车等领域的应用...
  16. 读取网络时间完整代码
  17. educoder平台哪里有答案_2020青骄第二课堂登陆平台地址入口 青骄第二课堂禁毒知识竞赛入口...
  18. Matlab 2017a 安装、破解步骤
  19. 重装Win10系统之U盘启动盘的制作(详细教程)
  20. C++11标准模板(STL)- 算法 - 数值运算 (std::accumulate)

热门文章

  1. rn代码与android,RN与原生通讯(安卓篇)
  2. gradle mysql依赖关系,如何在gradle中找到\删除未使用的依赖关系
  3. 可口可乐造型设计_瓶型设计的一些观点
  4. usb模拟串口_USB不被电脑识别,按F8有用吗?这篇文章告诉你
  5. linux退出python环境_Linux中的python虚拟环境
  6. 认知心理学告诉你什么才是高效学习
  7. [Python學習筆記] 在Centos上安裝 Django
  8. c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
  9. django 中的用户身份验证和 session 的关系
  10. You may use special comments to disable some warnings. Use // eslint-disable-next-line……