微服务API Gateway
翻译-微服务API Gateway
原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译。
让我们想象一下你正在建立一个使用微服务模式的网上商店,你所用的产品详细信息页面。你需要开发多个版本的产品详情界面:
l 由服务器端Web应用程序生成的HTML - HTML5/ JavaScript的桌面和移动浏览器用户界面。
l 原生Android和iPhone客户端 - 这些客户端通过的REST API服务器交互。
此外,网上商店必须通过使用由第三方应用REST API公开的产品详细信息。一个产品的详细信息界面可以显示很多有关产品的信息。例如,Amazon.com的详细信息页面包括:
l 关于这本书,如标题,作者,价格等基本信息
l 这本书购买历史记录
l 可用性
l 购买选项
l 购买这本书的客户还买了那些
l 顾客评论
l 卖家排名
l ...
由于网上商店使用微服务模式的,产品详细信息数据分布在多个服务。 例如,
l 产品信息 - 有关产品,如标题,作者基本信息
l 定价服务 - 产品价格
l 订购服务 - 购买历史记录产品
l 库存服务 - 产品供应
l 评论服务 - 客户评论...
因此,显示产品细节的代码需要在所有这些服务中获取信息。
难题
微服务的客户端是如何访问个体服务的?
考虑因素
l 通过微服务提供的API的粒度往往和客户端需要的不同。微服务通常提供细粒度的API,这意味着客户端需要与多个服务进行交互。例如,如上所述,客户端需要的产品的细节需要从多种服务获取数据。
l 不同的客户端需要不同的数据。例如,产品详情页桌面浏览器的版本通常更复杂于移动版本。
l 网络性能因为不同类型的客户端而不同。例如,移动网络通常要慢得多,并具有高得多的延迟。当然,任何广域网是比一个局域网慢得多。这意味着手机本地客户端使用的网络与服务端web应用的LAN的性能特点区别很大。服务端web应用可以在不影响用户体验的情况下,向后端服务发送大量请求,但手机客户端只能发送少量的请求。
l 服务实例数量和它们的位置(主机+端口)动态改变。
l 服务可能随时间改变,所以要对客户端隐藏细节。
解决方案
可以实现一个API 网关,他是所有客户端的入口。 API网关有两种方式来处理请求。有些请求被简单地代理/路由到合适的服务上,其他的请求被转给到一组服务。
该API网关可以为每个客户端提供不同的API,而不是提供一个适合所有情况下的API。例如,Netflix的API网关运行客户端特定适配器代码,提供给每个客户端它们需要的API。
API网关还可以实现安全性,例如: 验证客户端被授权执行请求。
结论
使用API网关具有以下优点:
l 使服务和客户端解耦。
l 使客户端和服务部署环境解耦。
l 提供了最佳的API给每个客户端。
l 减少的请求/往返次数。例如,API网关可以一次性检索多个服务的数据。更少的请求也意味着更少的开销,提高了用户体验。一个API网关对于移动应用至关重要。
l 简化了客户端的调用,因为API网关可以组合服务,并提供组合后的façade接口。
API网关模式也有一些缺点:
l 增加的复杂性,API网关是必须开发、部署和管理的另一个应用。
l 增加的响应时间,因为通过API网关多了一层网络跳转。然而,对于大多数应用的额外往返的成本是微不足道的。
问题
如何实现API网关?API网关需要支持高并发、高负载,使用事件响应机制(IO两种机制:一种是阻塞式的,另一种是事件响应式的,还有最新的一种是GO语言微线程方式)是最好的方法。在JVM上,可以基于NIO的库如Netty,另外 NodeJS是另一个选择。
微服务API Gateway的更多相关文章
- 翻译-微服务API Gateway
原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下你正在建立一个使用微服务模式的网上商 ...
- 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的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)通 ...
- 微服务API网关
当你选择采用微服务构建自己的程序,则你需要考虑客户端怎样与后端服务交互.对于一个单体应用,仅有一个服务群提供服务(通过负载均衡器实现).在微服务架构里面,每一个服务都暴漏了一个服务器集群.本篇文章我们 ...
- 对微服务API服务网关的理解
目录微服务专栏地址目录1. 简介2. 什么是API网关3. 为什么需要API网关4. API网关在微服务架构体系中处于什么位置4.1 调用者眼中的API网关4.2 所处的位置5. 网关技术实现有哪些6 ...
- 【10】JMicro微服务-API网关
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...
- 基于微服务API级权限的技术架构
一般而言,企业内部一套成熟的权限系统,都是基于角色(Role)的 访问控制方法(RBAC – Role Based Access Control),即权限 (Permission)与角色相关联,用户( ...
- 【微服务】之七:轻松搞定SpringCloud微服务-API权限控制
权限控制,是一个系统当中必须的重要功能.张三只能访问输入张三的特定功能,李四不能访问属于赵六的特定菜单.这就要求对整个体系做一个完善的权限控制体系.该体系应该具备针区分用户.权限.角色等各种必须的功能 ...
随机推荐
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- Hadoop-2.4.0安装和wordcount执行验证
Hadoop-2.4.0安装和wordcount执行验证 下面描写叙述了64位centos6.5机器下,安装32位hadoop-2.4.0,并通过执行 系统自带的WordCount样例来验证服务正确性 ...
- VS2010,原来还有这些快捷键,果断记下来!
一直认为VS的快捷键跟eclipse比起来差远了,那些由于不知道还有如此多有效却不知的快捷键阿 1. 检查括号匹配(在左右括号间切换): Ctrl +] 2. 选中从光标起到行首(尾)间的代码: Sh ...
- hdu 4836 The Query on the Tree(线段树or树状数组)
The Query on the Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- ipconfig /flushdns 清除系统DNS缓存
1.ipconfig /flushdns的作用 ipconfig /flushdns 这是清除DNS缓存用的. 当訪问一个站点时系统将从DNS缓存中读取该域名所相应的IP地址,当查找不到时就会到系统中 ...
- 屌丝程序猿赚钱之道之taobao 2
续上篇,之前写的案例,都是比較0基础的. 案例4: 代写情书.软文.论文等等. 这是我一个同学的真实故事. 我隔壁寝室的小王平时没事就爱谢谢博客.逛逛论坛.大二的时候接触了威客网,開始在网上 ...
- 数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)
数据一致性(consistency).服务可用性(availability).分区容错性(partition-tolerance) 分布式系统理论基础 - CAP 2016-04-04 18:27 b ...
- 域名注册查询接口(API)的说明
1.域名查询 接口采用HTTP,POST,GET协议: 调用URL:http://panda.www.net.cn/cgi-bin/check.cgi 参数名称:area_domain 值为标准域名, ...
- crontab,想说爱你不easy
悲剧的背景 跑自己主动化脚本的机器连不上toastserver了, 仅仅能自己写个脚本每天跑了. 当然要放在crontab里了. 5 3 * * * sh ~/nosecron.sh 更悲剧的结果 第 ...
- 谷歌宣布Android auto目前的汽车系统汽车市场的影响
由于2007年.汽车导航产品已经得到长足的发展.其产品主要用于WinCE制.除了导航功能,通常有收音机,播放光盘.广播SD卡/U音频和视频盘,蓝牙手机,倒车后视功能.由于WinCE微软放弃系统,And ...