@IT·互联网程序员网关专栏

如何设计自己的网关(一)

2018-03-19  本文已影响230人  撸二行代码

引言:

网关在生产环境中,不管以什么要的形式都在体现着种种作用。不同的人对于网关的认知是完全不同的。本文主要讲述API网关在应用开发中的应用场景。

各类网关介绍:

什么是网关:

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层—应用层。

什么是应用网关

应用网关是将一个网络与另一个网络进行相互连通,提供特定应用的网络间设备,应用网关必须能实现相应的应用协议。应用网关可以看做是运行于要求特定业务的客户机与提供所需业务的服务器之间的中间过程。应用网关在这类过程中,从用户侧来看它起着服务器的作用,从服务器侧来看它是一个客户机。

什么是API网关

API网关是微服务架构(Microservices Architecture)标准化服务的模式。API网关定位为应用系统服务接口的网关,区别于网络技术的网关,但是原理则是一样。API网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等。

API网关

API网关现有产品:

1、基于nginx平台实现的网关有:KONG、API Umbrella

2、自研发的网关有:apigee、Zuul

API网关适用场景:

对于当前互联网环境对于微服务的火热程度,肯定会有人认为API网关适用于微服务架构,个人不怎么这么认为。对于API网关我们要明确知道它替代或者说他提供的功能是哪些,然后才能明确表现出API网关的场景。

API网关整体结构:

网关结构

API网关应该具备哪些功能:

1:日志记录

2:安全认证

3:路由

4:黑白名单

5:协议转换

API网关您应该关心的内容:

1:API服务的管理(您是人为维护还是注册与发现完全取决你的使用场景,如果您只是一个单机版本服务,那么您还是人为维护你的API服务吧)

2:路由策略(如果是单机版本则无需考虑)

3:API网关除了路由是核心功能的话,安全认证也是一定在API网关中实现的功能。

API网关的技术实现

如果你想重新设计一个API网关的话,那么这其实是一个远大的任务,并且你需要了解的东西还很多很多。

现在我们准备站在巨人的肩膀上基于Zuul来准备实现一个简单单机版本的Zuul吧。

API网关实现前的准备:

定义一个需求:定义一个需求才能明确你的API网关的起的作用。

定义一个场景:定义你使用场景,才能不会过度的设计无需功能

定义一个语言:使用一个您最熟悉的语言来进行开发

定义一些非功能要求:非功能需求往往有时候会成为你的API网关的成败与否,例如性能,不能因为你的API网关而导致整体性能低下。

就到这里吧。本周日,会基于API网关实现前的准备,做一个详细阐述,敬请期待。

上一篇下一篇

猜你喜欢

热点阅读