云设计模式之: 网关卸载模式

栏目: 后端 · 发布时间: 5年前

内容简介:在云应用中,经常有一些功能特性是跨服务的,也就是很多服务都需要同样的功能,比如SSL保护、认证、授权、协议转换、监控等,这样不仅给应用部署带来麻烦,而且冗余度大大增加。因此,将这些通用的功能卸载到网关,外部调用都先经过网关,然后由网关转发到后边的应用服务,这样也可以使得功能特性和非功能特性的代码分离,增加系统的健壮性和可维护性。解决这个问题的方法之一就是使用网关卸载(Gateway Offloading)模式,其结构图如下所示:上图中,可以看到从外部到API网关的调用是用SSL加密的,而网关到内部服务的调用

1. 缘由

在云应用中,经常有一些功能特性是跨服务的,也就是很多服务都需要同样的功能,比如SSL保护、认证、授权、协议转换、监控等,这样不仅给应用部署带来麻烦,而且冗余度大大增加。因此,将这些通用的功能卸载到网关,外部调用都先经过网关,然后由网关转发到后边的应用服务,这样也可以使得功能特性和非功能特性的代码分离,增加系统的健壮性和可维护性。

2. 解决方案

解决这个问题的方法之一就是使用网关卸载(Gateway Offloading)模式,其结构图如下所示:

云 <a href='https://www.codercto.com/topics/17995.html'>设计模式</a> 之: 网关卸载模式

上图中,可以看到从外部到API网关的调用是用SSL加密的,而网关到内部服务的调用不需要加密,这样就简化了内部服务的部署,并且可以在网关添加一些后端服务共有的功能,或者非功能特性,比如调用统计。共性的东西部署到网关,因此这些特性的维护就只需要维护好网关就可以了,简化了管理。此外,这样分离的作用还可以促使更好的分工,比如某个团队专门开发和维护网关,另外的业务开发团队专注于后端应用服务的开发,而不需要考虑诸如SSL加密、认证授权等功能,这样可以使得业务开发更单纯更高效。

3. 需要考虑的问题

使用这个模式后,要避免API网关的单点故障问题,因此往往需要部署多个网关实例。同时,需要考虑网关的可扩展性和并发性,不要让网关成为瓶颈。一般来说,其它服务都需要的功能,才会放置到网关,而且需要注意的是,网关不应该承载任何业务功能。

4. 具体示例

使用Nginx来做网关,它接收客户端的HTTPS请求后,将这些请求以HTTP的形式转发到后端的上游服务器。这种情况下,Nginx可以这样配置:

云设计模式之: 网关卸载模式

微信扫码,进入【技术人成长】社群逛逛。

云设计模式之: 网关卸载模式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Microsoft Windows程序设计

Microsoft Windows程序设计

佩措尔德 / 章立民 / 华中科技 / 2004-1 / 118.00元

Charles Petzold是全球最权威且知名的Windows程序设计专家,他将其最畅销Programming Microsoft Windows with C#一书加以改写,使之能完全适用于Visual Basic.NET的开发人员。这位畅销书的作家示范了如何使用Visual Basic.NET将Windows Forms的功能发挥到极致(Windows Forms是新一代的Windows程序......一起来看看 《Microsoft Windows程序设计》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具