微服务架构中API网关的角色

【编者的话】本文主要讲述了Mashape的首席技术执行官Palladino对API网关的详细介绍,以及API网关在微服务中所起的作用,同时介绍了Mashape的一款开源API网关Kong。

本文讲的是微服务架构中API网关的角色API网关提供商Mashape的首席技术执行官Marco Palladino预测,尽管它们在命名方面存在差异,但新出现的服务网格并不完全不同于API网关,两者之间的相似性会随着时间的推移而不断增长。

Palladino指出,实际上这两种技术提供的功能很相似。API网关,比如Amazon Web Services的API网关或Mashape的开源API网关Kong,在过去的十多年来主要用于映射外部流量到内部资源,而最近开发的服务网格——比如Lyft’s EnvoyUber’s Catylist——主要是在微服务架构中代理内部资源。

“当你想到网关的时候,你通常会想到一个集中的层,一个额外的跳在网络上处理附加的功能。但这并不一定是真的,”在上周洛杉矶举行的2017年MesosCon上Palladino发表演讲时这么说。网关还可以提供一种有效的方式来处理跨微服务之间的通信。他说:“你也可以在现有的微服务上运行Kong,摆脱额外的跳跃,减少延迟。”

在过去的10年里,API一直是一种受欢迎的通信交互方式,Docker使其易于设置微服务架构,其中应用程序和服务是由较小的可交换组件组成的。但这些组件之间需要一种方式进行发现与调用。这就是API网关的作用。

API网关“可以成为一个抽象层,它位于这些微服务中每个请求的访问路径上,”Palladino说道。

网关巩固了通往系统常用功能的所有路径,比如身份验证或者服务发现,通过插件都能被网关识别。“插件是一种有效的中间件功能可以动态应用于所有的微服务上,”他讲到。

API网关可以聚合服务请求和这些特性。客户端可以做出一个响应,网关可以将其分解为多个请求,节省了客户端自身调用的带宽。网关同样还可以跟踪这些请求。

立足整体式应用实现微服务,就如同强求活鸡取卵一般,几乎不具可行性。——@thefosk #MesosCon

——The New Stack(@thenewstack)2017年9月14号

当一个组织开始把一个单体应用拆分为微服务时,网关可以将对客户端的影响最小化。“网关就像装载单体应用前的一个窗帘。客户端只会处理网关,而你可以在窗帘后面解耦你的单体应用,不必担心更新你的客户端,”他说道。

他说:“当你没掌控你的客户端的时候这个特别有用”。

传统上,API网关在组织网络的边缘上被使用,处理的流量大部分来自于单体应用和外部客户端之间的交互。然而微服务架构将大部分的流量转移到内部网络,因为不同的微服务之间要进行交互。“你可以有外部的客户端使用案例,但这成为了当前消费微服务的众多客户端之一。”

构建在Nginx这高性能的服务器上,Mashape的Kong是使用最广泛的开源API网关,一个月超过20W运行实例,Palladino讲到。使用Kong,Nginx被扩展到中间件上,可以通过JSON RESTful调用进行动态配置。

原文链接:The Role of API Gateways in Microservice Architectures(翻译:康良)

原文发布时间为:2017-10-12

本文作者:kl2422

原文标题:微服务架构中API网关的角色

时间: 2024-11-08 18:42:53

微服务架构中API网关的角色的相关文章

认证鉴权与API权限控制在微服务架构中的设计与实现(一)

作者: [Aoho's Blog] 引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现. 1. 背景 最近在做权限相关服务的开发,在系统微服务化后,原有的单体应用是基于session的安全权限方式,不能满足现有的微服务架构的认证与鉴权需求.微服务架构下,一个应用会被拆分成若干个微应用,每个微应用都需要对访问进行鉴权,每个微应用都需要明确当前访问用户以及其权限.尤其当访问来源不只是浏览器,还包括其他服务

微服务架构中模块划分和服务识别

最近在进行微服务架构的交流和讨论中,除了谈到微服务技术架构外,客户往往更加挂你微服务模块的划分粒度,已经具体的微服务API接口的识别和定义问题,因此这篇文章将重点谈下微服务架构实践过程中的微服务模块划分和服务识别. 首先我们还是再总结在在跨系统间的接口集成中服务的识别和定义方法,可以总结为: 1. 基于流程架构和业务架构,从跨系统交互流程出发,分析业务交互接口点,识别关键的业务服务能力. 2. 基于数据架构和主数据建模分析,识别关键的数据服务能力. 3. 基于技术架构和共性平台层技术组件的分析和

微服务架构的核心要点和实现原理

微服务架构中职能团队的划分 传统单体架构将系统分成具有不同职责的层次,对应的项目管理也倾向于将大的团队分成不同的职能团队,主要包括:用户交互UI团队.后台业务逻辑处理团队与数据存取ORM团队.DBA团队等.每个团队只对自己分层的职责负责,并对使用方提供组件服务质量保证.如果其中一个模块化组件需要升级.更新,那么这个变更会涉及不同的分层团队,即使升级和变更的改变很小,也需要进行跨团队沟通:需求阶段需要跨团队沟通产品功能,设计阶段需要跨团队沟通设计方案,开发阶段需要跨团队沟通具体的接口定义,测试阶段

从 Spring Cloud 开始,聊聊微服务架构实践之路

本文讲的是从 Spring Cloud 开始,聊聊微服务架构实践之路[编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. 系统架构的演进过程 单一应用架构(第一代架构) 这是平台最开始的情况,当时流量小,为了节约成本,并将所有应用都打包放到一个应用里面,采用的架构为 .NET SQL Server: 表示层:位于最外层(最上层),最接近用户.用于显示数

正在考虑微服务架构的松耦合?小心这些陷阱!

本文讲的是正在考虑微服务架构的松耦合?小心这些陷阱![编者的话]本文阐述了作者在构建松耦合的微服务架构中遇到的一些挑战,并给出了相应的方法,包括:如何处理多个微服务间共享数据的场景,如何演进微服务API,如何处理微服务安全,以及如何组合微服务等. 微服务是一种新的架构,它使用简单.轻量.松耦合的服务来构建系统,这些服务彼此可以独立开发和发布. 如果你还不了解这些基础概念,请阅读Martin Fowler的文章.如果你想拿它和SOA进行比较,请看Don Ferguson的演讲.Martin Fow

几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm

微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程. 本文选自<架构解密:从分布式到微服务>. 本文盘点了四种常用的微服务架构方案,分别是ZeroC IceGrid.Spring Cloud.基于消息队列与Docker Swarm. ZeroC IceGrid微服

微服务架构下,如何打造别具一格的服务治理体验?(下)

作者介绍 张真,宜信技术研发中心高级架构师,负责基础系统架构演进与优化.服务治理.监控平台.微服务建设.DevOps平台.自动化测试框架及电子签约.短信.邮件等应用系统.早年就职于IBM中国研发中心,负责IBM WebSphere应用服务器的设计与开发.目前主要关注微服务架构实施,微智能设计思想应用,虚拟化技术应用,共识计算研究.   上文我们已经详细讲到了一些经典微服务架构的特点及问题,微服务计算平台的设计思想与抽象模型,今天就接着打造微服务计算的基础三件事这一话题,说说服务情景感知与监控和服

老司机的微服务架构实现,照亮你的人生 | 朱攀

编者按:前2月,向朱攀兄弟约稿,畅聊甚欢,引为知己.今刊发以飨读者! 微服务为当今群雄混战局面,从dubbo问世数载,然业界尚未有完整打包结局方案,前有小剑之<老司机带你玩PPmoney微服务>,德比软件作为前驱,集数年研究与实战,搭建平台,填埋深坑,则业界之幸! 适逢1024程序员节,一并祝各位程序猿/媛节日快乐,早日步入老司机行列 前言 微服务概念被提出来后,短时间内就成了当前互联⽹圈的⼀个技术热点,有很多互联⽹公司计划或正在进⾏微服务化改造,那么,实施微服务我们应该怎么开始呢?需要哪些基

微服务系统中的认证策略

软件安全本身就是个很复杂的问题,由于微服务系统中的每个服务都要处理安全问题,所以在微服务场景下会更复杂.David Borsos在最近的伦敦微服务大会上作了相关内容的演讲,并评估了四种面向微服务系统的身份验证方案. 在传统的单体架构中,单个服务保存所有的用户数据,可以校验用户,并在认证成功后创建HTTP会话.在微服务架构中,用户是在和服务集合交互,每个服务都有可能需要知道请求的用户是谁.一种朴素的解决方案是在微服务系统中应用与单体系统中相同的模式,但是问题就在于如何让所有的服务访问用户的数据.解