对微服务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翻译对原文的翻译. 让我们想象一下 ...
随机推荐
- Object-C-selector
Shape *shape=[[Shape alloc]init]; //[shape draw] SEL selDraw=@selector(draw); [shape performSelector ...
- python chunk模块
chunk模块用于读取TIFF格式的文件,打开应该使用二进制模式 TIFF 标签图像文件格式 import chunk import chunk f=open('E:\\test.tiff','rb' ...
- linux查看文件夹大小,备份文件夹zip压缩解压
linux查看文件夹大小,备份文件夹zip压缩解压 du -sh : 查看当前目录总共占的容量.而不单独列出各子项占用的容量 du -lh --max-depth=1 : 查看当前目录下一级子文件和子 ...
- QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务
QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务http://wpa.qq.com/msgrd?v=3&uin=你的客服QQ号码&site=qq&menu=y ...
- python如何序列化json数据
使用json模块提供的loads方法和dumps方法,可以很方便的载入和读取json数据格式.而在具体实际应用中,我们使用python数据格式是 string.list 或dict等,这类格式如何直接 ...
- P3538 [POI2012]OKR-A Horrible Poem
P3538 [POI2012]OKR-A Horrible Poem hash+线性筛 题解 <----这篇写的不错(其实是我懒得码字了qwq) UVA10298 Power Strings 的 ...
- 2016年蓝桥杯B组C/C++省赛(预选赛)题目解析
2016年蓝桥杯B组C/C++ 点击查看2016年蓝桥杯B组省赛试题(无答案版) 第一题:煤球数目 题解 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个( ...
- POJ 3687 Labeling Balls(拓扑排序)题解
Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them ...
- BZOJ1355: [Baltic2009]Radio Transmission KMP
Description 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. Input 第一行给出字符串的长度,1 < L ≤ 1, ...
- 【TCP/IP详解 卷一:协议】TCP的小结
前言:TCP学习的综述 在学习TCP/IP协议的大头:TCP协议 的过程中,遇到了很多机制和知识点,详解中更是用了足足8章的内容介绍它. TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要为 ...