对微服务API服务网关的理解
目录
微服务专栏地址
目录
1. 简介
2. 什么是API网关
3. 为什么需要API网关
4. API网关在微服务架构体系中处于什么位置
4.1 调用者眼中的API网关
4.2 所处的位置
5. 网关技术实现有哪些
6. zuul网关工作原理是什么样的
6.1 整体处理流程图
6.2 请求生命周期
7. 技术上如何选型
1. 简介
通过以下几个问题去理解微服务中的一个重要组件:API网关。
什么是API网关
为什么需要API网关
API网关在微服务架构体系中处于什么位置
网关技术实现有哪些
zuul网关工作原理是什么样的
技术上如何选型
2. 什么是API网关
API网是一个反向路由:屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例。
API网关是一组“过滤器”集合:可以实现一系列与核心业务无关的横切面功能,如安全认证、限流熔断、日志监控。
3. 为什么需要API网关
什么是API网关中已给出理由,简单总结:
屏蔽内部细节
反向路由
安全认证
限流熔断
日志监控
4. API网关在微服务架构体系中处于什么位置
4.1 调用者眼中的API网关

统一入口
内部服务对于调用者是透明的
4.2 所处的位置

处于负载均衡与业务服务之间
API网关也可实现负载均衡功能
5. 网关技术实现有哪些
简单列举,不做比较,有兴趣可查询资料,后续为基于zuul网关来理解工作流程原理
1
zuul:是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Spring Cloud已集成
kong:是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目
6. zuul网关工作原理是什么样的
因为后续API网关组件会聚焦于zuul,这里对zuul工作原理提前学习。
1
6.1 整体处理流程图

zuul本身是一个Servlet
HttpServlet Request请求到达Zuul Servlet
通过ZuulFilter Runner ,并且根据routing filter 类型执行filter 链
根据FilterType类型不同,执行的顺序不同且可完成不同的功能
pre:在请求被路由之前调用,可实现日志监控、身份认证、黑名单等功能
route:在路由请求时候被调用
post:在route和error过滤器之后被调用,可实现审计、统计等功能
error:处理请求时发生错误时被调用、可实现统一异常处理等功能
Request Context:在请求生命周期中共享变量
Filter的实现是可插拔的
脚本实现Filter
发布到filter目录中
由filter manager与filter loader自动加载
6.2 请求生命周期

拦截请求
根据filter类型,执行已加载的filter chain
返回请求
7. 技术上如何选型
若使用的微服务框架是Spring Cloud,可选择Netflix的zuul,已经很好的集成到SC中
kong ,当然,能力强的可以自定义实现满足自己需求的API网关
---------------------
作者:AlienStar
来源:CSDN
原文:https://blog.csdn.net/crave_shy/article/details/81221738
版权声明:本文为博主原创文章,转载请附上博文链接!
对微服务API服务网关的理解的更多相关文章
- 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...
- 微服务API网关
当你选择采用微服务构建自己的程序,则你需要考虑客户端怎样与后端服务交互.对于一个单体应用,仅有一个服务群提供服务(通过负载均衡器实现).在微服务架构里面,每一个服务都暴漏了一个服务器集群.本篇文章我们 ...
- Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)
技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问 ...
- 【10】JMicro微服务-API网关
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...
- .NET Core 微服务—API网关(Ocelot) 教程 [一]
前言: 最近在关注微服务,在 eShop On Containers 项目中存在一个API网关项目,引起想深入了解下它的兴趣. 一.API网关是什么 API网关是微服务架构中的唯一入口,它提供一个单独 ...
- .NET Core 微服务—API网关(Ocelot) 教程 [二]
上篇文章(.NET Core 微服务—API网关(Ocelot) 教程 [一])介绍了Ocelot 的相关介绍. 接下来就一起来看如何使用,让它运行起来. 环境准备 为了验证Ocelot 网关效果,我 ...
- .NET Core 微服务—API网关(Ocelot) 教程 [三]
前言: 前一篇文章<.NET Core 微服务—API网关(Ocelot) 教程 [二]>已经让Ocelot和目录api(Api.Catalog).订单api(Api.Ordering)通 ...
- 【Dalston】【第五章】API服务网关(Zuul) 上
微服务场景下,每一个微服务对外暴露了一组细粒度的服务.客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么客户端需要多次请求不同的微服务才能完成一次业务处理,增加客户端的代码复 ...
- 微服务API Gateway
翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...
随机推荐
- [Data Access] ORM 原理 (11): 效能議題
這絕對是 ORM 的使用者,開發人員與 DBAs 共同想要問的議題,到底我使用了 ORM 和使用傳統的 ADO.NET 下 SQL 指令的方式會差多少? 這個問題不但會發生在 Entity Frame ...
- 5+App使用定位
1.定位方法 5+App定位方法:5+ API中的Geolocation模块 Geolocation目前支持h5内置的定位,百度,高德.h5内置定位支持wgs84坐标系:百度支持gcj ...
- 一起来全面解析5G网络领域最关键的十大技术
提到5G,很多人的第一印象就是它的网络速度快.延时性低.带宽大,没错,这就是5G时代的特点!5G作为第五代移动通信网络,其峰值理论传输速度可达每秒数十Gb,这比4G网络的传输速度快数百倍,整部超高画质 ...
- Kotlin语言Web库又添一虎将:Kweb
Kweb是一个库,您可以利用它使用Kotlin编程语言轻松构建Web应用程序.从程序员的角度来看,它基本上消除了浏览器和服务器之间的分离.这意味着只操纵DOM的事件不需要进行服务器往返.由于Kweb是 ...
- ORA-01507: database not mounted
今天启动数据库时报错了! SQL> startup mount ORACLE instance started. Total System Global Area 608174080 byte ...
- C++提供了四个转换运算符
const_cast <new_type> (expression) static_cast <new_type> (expression) reinterpret_cast ...
- Linux 系统版本查询
显示Linux版本信息 输入"cat /proc/version",说明正在运行的内核版本. 输入"cat /etc/issue", 显示的是发行版本信息. 输 ...
- Python3基础 dict items 以元组的形式打印出字典的每一个项
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 平衡树之伸展树(Splay Tree)题目整理
目录 前言 练习1 BZOJ 3224 普通平衡树 练习2 BZOJ 3223 文艺平衡树 练习3 BZOJ 1588 [HNOI2002]营业额统计 练习4 BZOJ 1208 [HNOI2004] ...
- JS事件监听器
JS事件监听器 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Javasc ...