微服务入门:Openresty实现API网关
![]() 概念介绍 如果大家清楚“网关”这个概念,那就很容易理解“API网关“,即所有API的入口。 从面向对象设计的角度看,它与外观模式类似,封装了系统内部架构。在单体应用架构中,没有「 API网关 」的概念,每个项目都会用到filter/过滤器之类的东西,filter的作用就是把项目中的一些非业务逻辑的功能抽离出来独立处理,避免与业务逻辑混在一起增加代码复杂度。比如 鉴权认证功能、Session处理、安全检查、日志处理等等。 如果采用微服务架构,那一个项目中微服务节点很多,如果让每一个节点都去处理上面这些 “鉴权认证功能、Session处理、安全检查、日志处理等” 会多出很多冗余的代码,也会给增加业务代码的复杂度,因此就需要有一个API网关把这些公共的功能独立出来成为一个服务来统一的处理这些事情。 ![]() 主要功能 API网关就像是微服务的一扇门,是连通外部客户端与内部微服务之间的一个桥梁。 其主要功能有:
OpenResty API网关最主要的功能实现就是请求拦截,在网络请求的整个生命阶段加入各种filter/过滤器, OpenResty提供了这样的功能。 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 OpenResty 处理一个请求,它的处理流程请参考下图(从 Request start 开始): ![]() 依据OpenResty的请求处理流程,和各种第三方模块,就可以在流程节点中加入我们的API网关逻辑代码。例如,对API请求数量进行统计:
【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
-
最近升级了x2.0的补丁,发现普通用户在下载附件的时候...[详细]
-
编程之家 jb51.cc 很多用户在搬家或者重新安装论坛的...[详细]
-
本教程讲解如何把本地的数据迁移到虚拟空间,以迁移 U...[详细]
-
我的是虚拟空间,win 2003 SP服务器,尝试了论坛上提...[详细]
-
本教程进行了一些规范设定,主题列表一律用commtopics...[详细]
-
编程之家 jb51.cc 此文谨献给新手,请高手飘过,discuz...[详细]
-
编程之家 jb51.cc 问题: besttopic这个,我预览。没...[详细]
-
1.开启防采集功能:参数设置-》信息设置 2.增加随机...[详细]
-
后台密码忘记拉,怎么办? 5.0及以前版本:用phpmyadm...[详细]
-
碎片是门户网站必备的功能之一。下面我们来说明一下门...[详细]