API网关-浅析.ppt
《API网关-浅析.ppt》由会员分享,可在线阅读,更多相关《API网关-浅析.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、API网关网关-浅 析浅 析王王 振 涛振 涛一、为什么微服务需要一、为什么微服务需要API网关?网关?API网关是什么网关是什么?微微服务服务API网关的网关的优势优势API网关是什么网关是什么?API网关是一系列服务集合的访问入口。从面向对象设计的角度看,它与外观模式类似,实现对所提供服务的封装一个微服务架构可以包含数十到数百个服务。API网关可以为外部用户提供一个统一的入口,这个入口独立于内部微服务组件微微服务服务API网关的网关的优势优势阻止阻止将内部的敏感信息暴露给外部的客户端将内部的敏感信息暴露给外部的客户端 API网关通过提供微服务绑定和解绑的能力来将外部的公开API与内部微服务
2、API分离开。这样就具备重构和裁切微服务而不会影响外部绑定的客户端的能力。它同时对客户端隐藏了服务发现和服务版本这些细节,因为它对所有微服务提供单一的访问点微微服务服务API网关的网关的优势优势为为服务增加额外的安全层服务增加额外的安全层API网关通过提供额外的安全层帮助阻止大规模攻击。这些攻击包括SQL注入,XML解析漏洞和DoS攻击微微服务服务API网关的网关的优势优势可以可以支持混合通讯协议支持混合通讯协议不同于外部API一般使用HTTP或REST,内部微服务可以从使用不同通讯协议中收获益处。这些协议可以是ProtoBuf或AMQP,甚至是诸如SOAP,JSON-RPC或者XML-RPC
3、这样的系统集成协议。API网关可以对这些协议提供统一的外部REST接口,这就允许开发团队挑选一款最适合于内部架构的协议微微服务服务API网关的网关的优势优势降低降低微服务的复杂度微服务的复杂度微服务中有一些常见的要点,诸如使用API令牌进行授权,访问控制和调用频次限制。这每个点都需要每个服务区增加额外的时间去实现它们。API网关将这些要点从你的代码中提取出来,允许你的服务只关注于它们需要关注的任务微微服务服务API网关的网关的优势优势微微服务模拟和虚拟化服务模拟和虚拟化随着微服务API从外部API中分离出来,你可以模拟你的服务去做设计验证或者很方便的做集成测试二、微二、微服务与服务与RPC R
4、PC vs RestfulRPC技术选型技术选型Apache Thrift+Protobuf服务注册与发现服务注册与发现连接池连接池API网关网关熔断与限流熔断与限流服务服务演化演化RPC vs Restful在微服务中,使用什么协议来构建服务体系,一直是个热门话题。争论的焦点集中在两个候选技术:(Binary)RPC or Restful以Apache Thrift为代表的二进制RPC,支持多种语言(但不是所有语言),四层通讯协议,性能高,节省带宽。相对Restful协议,使用Thrift RPC,在同等硬件条件下,带宽使用率仅为前者的20%,性能却提升一个数量级。但是这种协议最大的问题在于
5、,无法穿透防火墙RPC vs Restful以Spring Cloud为代表所支持的Restful 协议,优势在于能够穿透防火墙,使用方便,语言无关,基本上可以使用各种开发语言实现的系统,都可以接受Restful 的请求。但性能和带宽占用上有劣势所以,业内对微服务的实现,基本是确定一个组织边界,在该边界内,使用RPC;边界外,使用Restful。这个边界,可以是业务、部门,甚至是全公司RPC技术选型技术选型RPC技术选型上,原则也是选择自己熟悉的,或者公司内部内定的框架Apache Thrift国外用的多,源于Facebook,后捐献给Apache基金。是Apache的顶级项目 Apache
6、Thrift。使用者包括Facebook、Evernote、Uber、Pinterest等大型互联网公司。而在开源界,Apache Hadoop/HBase也在使用Thrift作为内部通讯协议。这是目前最为成熟的框架,优点在于稳定、高性能。缺点在于它仅提供RPC服务,其他的功能,包括限流、熔断、服务治理等,都需要自己实现,或者使用第三方软件RPC技术选型技术选型Dubbo国内用的多,源于阿里公司。性能上略逊于Apache Thrift,但自身集成了大量的微服务治理功能,使用起来相当方便。Dubbo的问题在于,该系统目前已经很长时间没有维护更新了。官网显示最近一次的更新也是8个月前Google
7、Protobuf和Apache Thrift类似,Google Protobuf也包括数据定义和服务定义两部分。问题是,Google Protobuf一直只有数据模型的实现,没有官方的RPC服务的实现。直到2015年才推出gRPC,作为RPC服务的官方实现。但缺乏重量级的用户RPC技术选型技术选型Thrift 提供多种高性能的传输协议,但在数据定义上,提供多种高性能的传输协议,但在数据定义上,不如不如Protobuf强大强大同等格式数据,Protobuf压缩率和序列化/反序列化性能都略高。Protobuf支持对数据进行自定义标注,并可以通过API来访问这些标注,这使得Protobuf在数据操控
8、上非常灵活。比如可以通过option来定义Protobuf定义的属性和数据库列的映射关系,实现数据存取RPC技术选型技术选型数据结构升级是常见的需求,Protobuf在支持数据向下兼容上做的非常不错。只要实现上处理得当,接口在升级时,老版本的用户不会受到影响而Protobuf的劣势在于其RPC服务的实现性能不佳(gRPC)。为此,Apache Thrift+Protobuf的RPC实现,成为不少公司的选择Apache Thrift+Protobuf如上所述,利用Protobuf在灵活数据定义、高性能的序列化/反序列化、兼容性上的优势,以及Thrift在传输上的成熟实现,将两者结合起来使用,是不
9、少互联网公司的选择Apache Thrift+Protobuf服务定义:serviceHelloService binaryhello(1:binaryhello_request);Apache Thrift+Protobuf协议定义:messageHelloRequest optionalstringuser_name=1;/访问这个接口的用户 optionalstringpassword=2;/访问这个接口的密码 optionalstringhello_word=3;/其他参数;messageHelloResponse optionalstringhello_word=1;/访问这个接口的
10、用户 服务注册与发现服务注册与发现Spring Cloud提供了服务注册和发现功能,如果需要自己实现,可以考虑使用Apache ZooKeeper作为注册表,使用Apache Curator 来管理ZooKeeper的链接,它实现如下功能:侦听注册表项的变化,一旦有更新,可以重新加载注册表管理到zookeeper的链接,如果出现问题,则进行重试服务注册与发现服务注册与发现Curator的重试策略是可配置的,提供如下策略:BoundedExponentialBackoffRetry ExponentialBackoffRetry RetryForever RetryNTimes RetryOne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- API 网关 浅析
限制150内