网关是什么(有网关还需要路由器吗)

前言沉默了一个周末 , 思考自己的职业规划 , 想了很多 。总的来说 , 要努力 , 坚持自己的初心 。希望大家都能坚持自己的内心 , 奋进 。
最近在考虑重构一个新产品 。准备微服务的技术方案 , 搭建基础架构框架 。网关是不可或缺的组件 。那么 , 到底什么是网关呢?
它有哪些特性或特点使其成为微服务的必备组件?今天 , 我们就来讨论一下这个问题 。希望通过这篇文章 , 大家能明白为什么要用它 。
演变过程【网关是什么(有网关还需要路由器吗)】传统的单一技术架构 , 所有的内容 , 都打包成一个包 。为了保证系统的稳定性和安全性 , 有必要开发一些过滤器和拦截器来过滤和拦截客户端请求 , 并完成最终请求的转发 。如下图所示
在微技术解决方案下 , 还需要为每个服务开发过滤器和拦截器来管理请求 。但由于服务数量多 , 客户端形式多样 , 如果每个服务都开发 , 会造成很大的代码冗余和开发负担 。因此 , 期望将一些相同的功能提取到一个服务中 , 并且这将成为一个组件 , 即当前的网关 。
网关存在的原因:
解决微服务技术架构下 , 请求管理功能解决微服务技术架构下 , 多客户端的适配 , 采用单一入口 , 完成协议适配网关的基本功能
在微技术解决方案下 , 网关必须至少具备图中所示的基本功能 。
网关作为单点入口 , 完成统一的请求管理免去客户端直接对接众多微服务的复杂性 , 采用单点入口 , 实现路由转发 , 从而实现服务调用服务对于整个系统来讲 , 是不稳定的 , 那么网关 , 需要进行限流熔断 , 保持系统的稳定与分区容错性对于服务调用的链路 , 网关有职责进行记录 , 日志监控 , 保证整个系统 , 在监控下工作系统可能不仅仅是由自有客户端调用 , 很多时候 , 系统开放能力API给外部 , 因此网关需要安全认证 , 来保证安全网关的高级应用蓝绿部署
红色部署 , 新老版本一起发布 , 为了解决发布时间的问题 。将流量导向新版本 。如果生产没有问题 , 就把旧版本去掉 。如果有问题 , 赶紧切换到老版本 。
通过网关 , 可以轻松实现蓝绿部署 。
开发者测试分支
对于生产 , 开发人员有时需要进行某些测试 。因此 , 通过采用网关 , 流量可以被定向 , 路由可以被转发到测试分支来完成测试 。
埋点测试
埋点测试用于特殊业务需求或技术需求下的测试 。提前埋好 , 根据埋点检查整个调用环节 。采用网关快速实现流量定向 。路由到需要隐藏的服务集群 。
压力测试
将群集中的一个或一组服务用作压力测试服务 。那么就有必要使用面向流量、路由和转发功能到网关 。
调试路由
在生产中 , 如果不方便测试 , 可以使用gateway进行面向测试的路由 。
金丝雀测试
金丝雀测试 , 用来测试流量的可行性 。类似蓝绿部署 。
粘性金丝雀测试
在某些情况下 , 客户端需要输入相同的服务 。粘金丝雀就是把客户流量粘起来 , 保证流量方向单一 。
失败注入测试
人工测试系统的安全性和稳定性需要故障注入 。那么网关可以用于引导流量 。
降级测试
由于服务的不稳定性 , 微服务中常见的系统测试涵盖了降级测试 。网关可以很好地承担这个责任 。
防爬防攻击
作为网关的入口要求 , 它自然可以承担流量控制 。
健康检查与坏点检测
网关还会在服务发现注册表中注册为服务 , 因此可以作为健康检查和坏点检测的工具 , 并可以采用自动断开等方式保证系统的稳定性和及时通知 。
跨区高可用部署网关集群 , 跨区域 , 可以实现 , 区域流量定向 。
链接:https://juejin.cn/post/6918211351257022471


    推荐阅读