目录
微服务专栏地址
目录
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服务网关的理解的更多相关文章

  1. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  2. 微服务API网关

    当你选择采用微服务构建自己的程序,则你需要考虑客户端怎样与后端服务交互.对于一个单体应用,仅有一个服务群提供服务(通过负载均衡器实现).在微服务架构里面,每一个服务都暴漏了一个服务器集群.本篇文章我们 ...

  3. Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)

    技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问 ...

  4. 【10】JMicro微服务-API网关

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...

  5. .NET Core 微服务—API网关(Ocelot) 教程 [一]

    前言: 最近在关注微服务,在 eShop On Containers 项目中存在一个API网关项目,引起想深入了解下它的兴趣. 一.API网关是什么 API网关是微服务架构中的唯一入口,它提供一个单独 ...

  6. .NET Core 微服务—API网关(Ocelot) 教程 [二]

    上篇文章(.NET Core 微服务—API网关(Ocelot) 教程 [一])介绍了Ocelot 的相关介绍. 接下来就一起来看如何使用,让它运行起来. 环境准备 为了验证Ocelot 网关效果,我 ...

  7. .NET Core 微服务—API网关(Ocelot) 教程 [三]

    前言: 前一篇文章<.NET Core 微服务—API网关(Ocelot) 教程 [二]>已经让Ocelot和目录api(Api.Catalog).订单api(Api.Ordering)通 ...

  8. 【Dalston】【第五章】API服务网关(Zuul) 上

    微服务场景下,每一个微服务对外暴露了一组细粒度的服务.客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么客户端需要多次请求不同的微服务才能完成一次业务处理,增加客户端的代码复 ...

  9. 微服务API Gateway

    翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...

随机推荐

  1. mysql进程文件

  2. 原生http模块与使用express框架对比

    node的http创建服务与利用Express框架有何不同 原生http模块与使用express框架对比: const http = require("http"); let se ...

  3. kali linux安装及配置

    kali linux用户名:root 密码:之前设置过的密码 --------------------------------------------------------------------- ...

  4. 公司里面用的iTextSharp(教程)---简介

    一.需求: 公司这次要做一个生成PDF的功能,需要设计,刚刚进入公司,组长把任务分配给了我,为了完成这个任务,苦学了许久的iTextSharp.现在记录下实现过程中了了解的一些东东,一起分享哈~~ 二 ...

  5. 使用Ajax生成的Excel文件并下載

    很久沒有寫文章啦,今天分享一個如何在ASP.NET MVC里使用Ajax下載生成文件的方法,以下只是個人心得: 大家都應該知道,在ASP.NET MVC里,如果通過Ajax調用后臺控制器時,可以返回一 ...

  6. xml之一

    xml基础知识 标记语言<> XML与HTML区别 1.HTML主要用来显示  XML是用来进行数据传输 2.HTML是一种预定义的(<a>表示超链接),xml不是预定义的(& ...

  7. (二)github的价值意义篇

    为什么需要社会化编程? 如果您是程序员面试官,两者之间你会选择哪一位呢? 能查看以前所写代码的程序员 or 无法查看的程序员 精通最新软件的程序员 or 不精通的程序员 对语言或软件差异带来的不同文化 ...

  8. ELK学习笔记之ElasticSearch的索引详解

    0x00 ElasticSearch的索引和MySQL的索引方式对比 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄 ...

  9. 02: SocketServer服务

    网络编程其他篇 目录: 1.1 SocketServer四种基本流及 异步处理理论部分 1.2 创建socketserver实现: 多客户端并发 1.3 SocketServer实现多并发FTP 部分 ...

  10. Problem F: 等式

    Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 104  Solved: 22[Submit][Status][Web Board] Descriptio ...