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

栏目: 后端 · 发布时间: 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可以这样配置:

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

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

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

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

查看所有标签

猜你喜欢:

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

The Black Box Society

The Black Box Society

Frank Pasquale / Harvard University Press / 2015-1-5 / USD 35.00

Every day, corporations are connecting the dots about our personal behavior—silently scrutinizing clues left behind by our work habits and Internet use. The data compiled and portraits created are inc......一起来看看 《The Black Box Society》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

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

HEX CMYK 互转工具