分布式系统进阶二十三之流量网关和业务网关设计
前言
由于项目在开发初期为了赶进度,快速上线,没有很好的规划和设计,导致现在随着需求的变化和功能的扩展,代码逐渐变得非常复杂和难以维护。为了保持代码的质量和可读性,我们需要进行代码重构。代码重构是一种对现有代码进行重新组织和优化的过程,旨在提高代码的质量和可读性,同时不改变其功能。代码重构的目标是使代码更加清晰、易于理解和维护,以便在未来的开发中更加高效地进行修改和扩展。
这里重构我们采用了通用的微服务架构模型,如图:
架构思考
在项目开发中,通常我们由一个域名绑定一个或多个ip,服务到我们系统部署的门户网关[流量网关],这类型的网关负责对整个服务集群的负载均衡功能和统一入口,毕竟再复杂的系统对用户来说应该都只有一个统一访问路径,这样的统一访问路径通常对用户来说是一个域名。对于一个域名而言它的功能就是映射到某个ip,而这个ip再转发给我们的内部服务。
系统重构
依据上面的架构思考和公司的主要业务线,我们把系统拆分为三大块,阅读应用,短视频应用和交易应用,架构如图:
阅读应用,短视频应用和交易应用 差距很大,所以比较合适的方案就是独立部署,开发各自的业务网关 和 聚合服务,比如:今日头条,抖音,抖音商城也是采用独立部署的。
流量网关
流量网关,顾名思义就是控制流量进入集群的网关,有很多工作需要在这一步做,对于一个服务集群,势必有很多非法的请求或者无效的请求,这时候要将请求拒之门外,降低集群的流量压力。
定义全局性的、跟具体的后端业务应用和服务完全无关的策略网关就是上图所示的架构模型——流量网关。流量网关通常只专注于全局的Api管理策略,比如全局流量监控、日志记录、全局限流、黑白名单控制、接入请求到业务系统的负载均衡等,有点类似防火墙。这里我们采用 Nginx 做流量网关。
业务网关
当一个单体应用被拆分成许许多多的微服务应用后,也带来了一些问题。一些与业务非强相关的功能,比如权限控制、日志输出、数据加密、熔断限流等,每个微服务应用都需要,因此存在着大量重复的代码实现。而且由于系统的迭代、人员的更替,各个微服务中这些功能的实现细节出现了较大的差异,导致维护成本变高。另一方面,原先单体应用下非常容易做的接口管理,在服务拆分后没有了一个集中管理的地方,无法统计已存在哪些接口、接口定义是什么、运行状态如何。
网关就是为了解决上述问题。作为微服务体系中的核心基础设施,一般需要具备接口管理、协议适配、熔断限流、安全防护等功能,各种开源的网关产品(比如 Spring Cloud Gateway)都提供了优秀高可扩展性的架构、可以很方便的实现我们需要的一些功能、比如鉴权、日志监控、熔断限流等。
什么是BFF?
BFF:Backends For Frontends(服务于前端的后端)。
BFF是一种Web架构,微服务设计系列丛书的作者 Sam Newman曾在他的博客中写了一篇相关文章《Pattern: Backends For Frontends》。
BFF(Backends For Frontends)设计是一种Web架构,旨在通过为前端应用程序提供单独的API网关来优化用户体验和性能。
BFF架构设计的核心思想是为前端应用程序提供一个专门的API网关,该网关专门服务于前端,处理路由、聚合操作等,从而使前端应用程序能够更加专注于用户体验和交互逻辑。这种架构模式有助于提高性能和用户体验,降低前后端的耦合度,简化前端开发,并提高系统的安全性。BFF适用于各种规模的应用程序,尤其适用于需要处理大量用户请求、提供高性能和高可用性的场景。
招商银行申请业务网关部署专利,实现适配不同的外部系统
金融界2023年12月14日消息,据国家知识产权局公告,招商银行股份有限公司申请一项名为“业务网关部署方法、装置、设备及存储介质“,公开号CN117221114A,申请日期为2023年9月。
专利摘要显示,本发明公开了一种业务网关部署方法、装置、设备及存储介质,属于智能网关技术领域。本发明通过获取服务器配置信息和业务自定义配置信息;根据所述业务自定义配置信息组装目标拦截器;根据所述服务器配置信息和所述目标拦截器部署并启动通用网关服务器,所述通用网关服务器包括请求转发服务器和本地服务器;接收外部系统的业务请求,并将所述业务请求进行处理后转发到业务系统。通过这种方式,实现了建立目标拦截器,并且根据业务自定义的配置信息进行通用网关的服务器部署,从而可以适配不同的外部系统,新的业务系统接入通用网关无需二次开发,只需要增加路由配置即可,在接收到外部系统的业务请求时直接进行处理和转发。
本文源自金融界
相关问答
中国移动智慧家庭 网关 入口?在用户手机上安装“和家亲APP”,登录后进行设置。1、和家亲app是中国移动推出的一款基于智能家庭网关的配套软件,通过连接家中智能家电,实现家庭生活数字化智...
在股票交易中,银行转证券中提示 网关业务 提示产品处...- 汇财...[回答]第一种情况可能是你在非交易日转账第二种情况是银行转证券账户要次日生效你需要到开户的证券公司去处理下股票交易密码锁定了没有关系,到第二天会...
怎么通俗地理解这句话,流量 网关 负责南北向流量调度及安全防...微服务网关(如SpringCloudGateway)是指与业务紧耦合的、提供单个业务域级别的策略,如服务治理、身份认证,权限控制、日志输出、数据加密、熔断限流等等。...
什么叫 网关 ,有什么作用?-ZOL问答网关简单来说就是你局域网的出口。你要去广域网必须经过的一个点就是网关了。有用(0)回复这问题看起来挺复杂的!首先,看一下是不是按了待机键之类的按键。...
端口和 网关 到底有什么区别?RestCloudAPI网关RestCloudAPI网关作为微服务架构或者前后端分离的业务系统架构中的重要组件承担着非常重要的数据输入输出工作,同时网关的灵活性也决定了整...
天翼 网关 怎么设置宽带?天翼宽带可以在家中使用无线WiFi,方法很简单,登录天翼网关的后台192.168.1.1用户名和密码在你的路由器背部的产品标贴上,登录后,点击WIFI-里面开启WIFI开关-...
在VLAN中怎么划分和设置各个 网关 -ZOL问答设置网关就是给你所划入VLAN的端口分配IP地址switch(config)interfacef0/2switch(config)ipaddress192.168.1.5255.255.0...
移动和家亲绑定 网关 是什么,有什么用吗?在用户手机上安装“和家亲APP”,登录后进行设置。1、和家亲app是中国移动推出的一款基于智能家庭网关的配套软件,通过连接家中智能家电,实现家庭生活数字化智...
网关 支付不支持该银行什么意思- 汇财吧专业问答test[回答]根据支付网关的建设主体不同,网上支付模式分为1、银行支付网关模式指客户或商家将支付指令经由银行的支付网关传送到银行后台业务处理系统来完成支...
第三方支付代理,具体做什么 业务 ?第三方支付的业务涉及比较广,有银行卡收单(线下)、银行卡在线支付(线上)、预付卡等,这是三大业务;第三方支付代理业务,一般指线上和线下业务,预付卡比...第...