API网关设计与实现 - 转

API网关设计与实现

API网关使用场景

在使用微服务架构场景下,客户端在调用后台微服务时,都需要进行登陆认证、权限认证、流量控制、负载均衡、健康检查等操作,这些操作是调用每一个微服务都必须。因此需要将该操作交给一个高性能的中间层进行处理,以降低系统间的耦合,并使微服务更加专注于业务逻辑处理,降低整体系统的响应时间。

如图,来自各种终端的请求经过一层负载均衡后到达网关,网关统一做登陆认证、权限认证、流量控制、负载均衡、健康检查等操作后,再将请求转发到后台微服务。

API网关技术选型与应用架构

API网关作为后台微服务请求的入口,必然要求其具有高性能的特点,为了使其可以按照自己的使用场景定制开发,对其易扩展性也要求很高,并且最好是有成熟的产品与规范的文档以及活跃的社区支持。OpenResty自然成为了首选!OpenResty是一款基于Ngnix的利用lua语言作为扩展的API网关技术。

上图为利用Openresty作为API网关的一种微服务架构图。如图所示:

Openresty启动时会先去redis集群中获取最新的服务地址与配置信息,并且进行消息订阅(即对某一端口进行监听);

后台微服务都会在ZK中进行注册,Gateway微服务会对ZK内的信息进行处理后存入redis集群中,并实时监听ZK的地址变动情况,redis集群中有了服务的地址就可以将地址推送给Openresty做负载均衡;

OS web平台提供一个web界面用于方便的进行流量控制与权限控制的设置;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容