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

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

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

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

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

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

查看所有标签

猜你喜欢:

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

信息烟尘

信息烟尘

戴维·申克 / 黄锫坚 / 江西教育出版社 / 2002 / 14.50元

今天,我们被大量的信息淹没了:传真、电子邮件、各种新闻、消息和铺天盖地的广告,正如人们以前预示的那样:出现了一个令人鼓舞的信息时代,媒体专家兼网络评论员戴维·申克透过这些繁荣的表象,揭示了大量的无用的信息对我们造成的干扰,或者说,“信息烟尘”对我们个人的健康(包括精神上的和肉体上的)及对社会造成的极大危害。这《信息烟尘:在信息爆炸中求生存》宣告了“信息时代”神话的破灭。一起来看看 《信息烟尘》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

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

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器