支持百万并发高性能网关设计实现系列:什么是网关?

老马说开发y 老马说开发y     2023-04-13     554

关键词:

网关是个什么东东?为什么需要网关?

随着微服务架构不断兴起,以前的一个大的单体应用根据不同的业务域拆分为不同的微服务系统进行维护和部署。因此各个微服务对外提供的服务接口API会呈现出爆发式的增长,如何对于各个应用服务的接口进行统一管理成为了不可回避的问题。

外部的请求想要访问内部的应用服务必须经过一系列的校验、鉴权等操作,如果吧这些操作都放到每个服务中去做明显不合理。不仅造成重复代码同时各个服务也增加了和自身业务逻辑无关的模块变得更重了,一旦增加新的校验规则,每个服务都需要进行修改,明显这不是好的设计。

因此,我们需要将这些服务的通用操作进行抽象,所有的关于请求的前置处理,都抽象到一个专门完成此业务的中间中去实现。而这个中间件就是我们所说的网关。API网关作为外部请求与内部微服务的沟通桥梁,承担了流量入口的重要职责,实现了对外部请求的的协议转换、请求鉴权、参数校验、流量控制、数据统计以及API上线与下线等通用能力的沉淀。

为什么进行网关自研

原因分析
实际上对于API网关来说,已经有不少的开源的解决方案,比如Zuul、Kong等开源网关实现。但是这些开源网关解决方案并不完备,比如不能没有强大的监控能力,不能很好的支持Open API平台,同时在扩展方面由于开源的一些限制,扩展方面不能与业务更好的匹配。

而如果自主进行网关的迭代开发,这样维护性更强,发现问题可以及时修改,不必要等待开源框架进行修复,同时可以通过插件化的设计更加契合自身业务。另外我们可以借鉴各个开源解决方案的优秀设计,摒弃一些不好的设计实现,为实现更加适合业务的网关奠定设计架构基础。

基于以上的几点的分析,我们需要自研一套高扩展、高性能、高可用的API网关解决方案满足自身业务。


价值分析

1、提升API网关自主开发以及扩展能力,在使用过程中有什么问题以及建议可以直接提给网关维护团队,问题解决效率更高,业务开发同学可以专注于业务实现;

2、降低前后端沟通成本,通过后端服务API的统一管控,可以将需要联调的测试接口发布到网关中,包括接口url、请求参数、响应信息等,万前端同学可以方便查看,提升前后端接口联调测试的效率;

总结

本文作为自研高性能网关系列的第一篇,主要给同学们阐述了网关在分布式系统中的重要作用以及核心功能,同时分析了进行网关自研的目的以及价值,后续的文章将从需求分析、架构设计以及落地实现等方面继续为大家拆解自研网关。

springcloud——微服务网关介绍

...Web应用服务器,web开发人员可以使用Lua脚本语言调用Nginx支持的各种以C以及Lua模块。在性能方面,OpenResty可以快速构造出足以胜任10K以上并发连接响应的超高性能Web应用系统。在国内,360、阿里云、腾讯网、去哪儿、酷狗音乐、... 查看详情

利用go优越的性能设计与实现高性能企业级微服务网关

(毕设项目)Vue+Go前端后端一体化企业级微服务网关项目不管是基于Java、Python、PHP,还是基于Go的网站,网站流量越高,对网关性能要求越高,尤其是亿级流量网站中,网关更是核心,它作为接入层承载了流量转发、负载均衡、服... 查看详情

dubbo高性能网关--flurry介绍

...,也可能是rpc协议等等。网关的定位决定了它生来就需要高性能、高效率的。网关对接着成百上千的服务接口,承受者高并发的业务需求,因此我们对其性能要求严苛,其基本功能如下:Flurry是云集自研的一款轻量级、异步流式化... 查看详情

如何设计一个高性能网关(代码片段)

...改造,不了解该项目的童鞋可以查看文章《如何设计一个高性能网关》。二、集群化设计问题点分析ship-server是ship-gate项目的核心工程,承担着流量路由转发,接口鉴权等功能,所以需要实现ship-server的分布式部署。但是路由规... 查看详情

gateway:网关

...图,不管有没有API网关,后端微服务都可以通过API很好地支持客户端的访问。​但对于服务数量众多、复杂度比较高、规模比较大的业务来说,引入API网关也有一系列的好处:聚合接口使得服务对调用者透明,客户端与后端的耦... 查看详情

高性能网关设计实践(代码片段)

...总结一下OpenResty的相关知识点,争取让大家对OpenResty这种高性能Web平台有一个比较全面的了解。本文会从以下几个方面来讲解。网关的作用接入层网关架构设计与实现技术选型OpenResty原理剖析content_by 查看详情

springcloud系列springcloud微服务网关概述(代码片段)

SpringCloud微服务网关概述1、微服务网关概述1.1、为什么要用微服务网关?1.2、什么是微服务网关?1.3、网关的作用及应用场景1.4、常见的API网关实现方式2、基于Nginx的网关实现2.1、Nginx介绍2.2、Nginx正向代理2.3、Nginx反向... 查看详情

电子电气架构车载网关系列——网关主要应用场景及相关要求

...,最后它可能需要协议转换到不同网络上。2、网络安全高性能的防火墙:网关芯片本身就具备较强的性能,同时连接了车内外不同的网络域,可以有效的进行防火墙的隔离。主要是隔离功能安全域网络,和非功能安全域网络; 查看详情

springcloudalibaba系列使用gateway作为服务网关

什么是网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这... 查看详情

springcloudalibaba系列使用gateway作为服务网关

什么是网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这... 查看详情

什么是 gem 支持多产支付网关?

【中文标题】什么是gem支持多产支付网关?【英文标题】:whatisgemsupportProlificPaymentGateway?【发布时间】:2011-04-3012:49:35【问题描述】:在authorize.net中,我使用了活动商家gem,但活动商家不支持多产支付网关。请给我推荐一个宝... 查看详情

it互联网系列什么是网关?网关的作用是什么?看完不懂,你捶我

...c;持续输出中...  程序人生,精彩抢先看目录1.前言2.网关   2.1什么是网关?   2.2网关的作用是什么?   2.3网关的工作流程   2.4软件系统网关1.前言对于网关,从专业角度,一般运维和网络管理员会比... 查看详情

envoy实现.net架构的网关代理grpc

...于控制平面的动态配置什么是GRPCgRPC是一种与语言无关的高性能远程过程调用(RPC)框架。gRPC的主要好处是:现代、高性能、轻量级的RPC框架。契约优先的API开发& 查看详情

springcloud系列之gateway服务网关

...是Zuul1.x版本,而这个版本是基于过滤器的,是阻塞IO,不支持长连接。  Zuul2.x版本一直跳票,2019年 查看详情

springcloud系列之网关gateway-2.gateway体系架构解析

...域Netty就是身份的象征,黄金AK般的存在,它是非阻塞、高性能、高可靠的异步输入输出框架,用一个字概括就是“快”。在后面会安排专门的章节介绍基于Netty的高性能通信,所以这里我们不对Netty做深入探讨,但是需要了解下N... 查看详情

由认识到应用——物联网lora技术性能分析

...257),可以同时监听8路+1路LoRa信号,接收灵敏度为-140dBm,支持LoRaWAN协议标准。大部分网关的设计都可以同时接收8路不同射频频率的信号因为,LoRa网关有8个LoRa信号接收信道,这信道好比马路上的车道,如果马路有八条车道,即... 查看详情

手写一个网关服务,理解更透彻!(代码片段)

...择使用LVS作为负载服务器,LVS是一种基于四层负载的高性能服务器,它的内部只会对外界的数据包进行分发处理,通常一台高性能的LVS机器就能支持百万的并发连接。为了保证LVS的高可用 查看详情

深入java微服务之网关系列2:常见java网关实现方案对比

什么是服务网关前文我们已经了解了构建微服务的基础springboot,同时也能使用springboot构建服务。接下来我们就基于springboot聊一下springcloud。这个springcloud并不是一个特定的技术,它指的是微服务中一个生态体系。比如包... 查看详情