用友云开放平台之API网关

本文介绍选择API网关应考虑的几方面内容,API网关在微服务框架中的作用,API网关如何选型,用友云开放平台的API网关可以做什么。
  随着互联网的快速发展,当前已步入移动互联、物联网时代。企业内部系统,企业与客户,企业供应链上下游之间,甚至于社会化公共数据的共享都对系统架构提出了新的需求。
  微服务框架的强势崛起,使更多企业迅速的完成了企业内部的API化,但在企业供应链和社会化开放数据和能力的强烈需求下,安全,隔离,共享成为刚性需求,所以API网关就成为了企业开放的必备产品。
  很多互联网平台已基于网关的设计思路,构建自身平台的API网关,国内主要有京东、携程、唯品会等,国外主要有Netflix、Amazon等。

一.如何选择自己的API网关?

  不管用已有还是自研的API网关 我们都需要从以下几个方面去考虑。
  1、安全与防护
  大型企业都把网络安全看成信息化的重中之重,作为企业数据和服务的对外出口,API网关要自 带基本的安全防护功能,能够防注入,防重放,防篡改,防一定规模的DDOS***,自定义规则对非 法流量进行过滤。
  2、性能与稳定性
  API网关就会作为企业应用核心,性能和可用性是最基本的需求要求。
  (1)从性能上来说,需要让网关增加的时间消耗越短越好,个人觉得需要10ms以下。 系统需要采用非阻塞的IO,如epoll,NIO等。网关和各种依赖的交互也需要是非阻塞的,这样才能保证整体系统的高性能。

  (2)网关必须支持集群部署和高可用,能够横行扩展,支撑高并发和大流量,同时任何一个节点down掉都不能影响整体的可用性。

  (3)尽可能多套网关应该支持同一管理平台和同一监控中心。 如: 一个企业的OpenAPI网关和内部应用的多个系统群的不同的微服务网关可以在同一监控中心进行监控。

  3、可扩展性、可维护性

  企业的需求是多样化的而且不断变化,作为基础平台的核心组件,要提供二次开发能力,方便扩展以及和其他基础平台之间流程打通

  4、需求匹配度

  需要评估各API网关在需求上是否能满足,如: 如果是OpenAPI平台需要使用API网关,那么需要看API网关在合作伙伴应用接入、合作伙伴门户集成、访问次数限额等OpenAPI核心需求上去思考产品是否能满足要求。 如果是微服务网关,那么要从微服务的运维、监控、管理等方面去思考产品是否足够强大。

二.API网关在微服务框架中的作用?

  1.企业安全隔离
  企业内部系统在对公有云或者外部系统集成时,需要一个明显的边界去保证自己企业的业务数据安全及权限的统一控制与管理,API网关在对外开放数据和提供能力时需要提供各种通用的安全认证标准。

  2.统一管理,全局入口

  在微服务架构之下,服务被拆的非常零散,降低了耦合度的同时也给服务的统一管理增加了难度,

  缺乏对外开放能力的全局视图管理及监控能力,API网关要完成全局开放流量入口的分析与管理。

  3.跨平台,跨语言,易集成,方便扩展

  用友云平台是基于JAVA语言开发的微服务治理平台,在JAVA语言调用时很方便,但是PHP,C系列等其它语言调用微服务时需要开发SideCar ,这就造成集成的复杂度,API网关提供标准的restful接口给产品在集成时提供很大便利。

三.API网关如何选型? 为什么是Nginx+Lua+c?

  现在开源的API网关主要基于Nginx、ZUUL、Spring Cloud Gateway、Linkerd等开源项目,但是各有特点:

  Linkerd也是一个非常有前途的项目,是基于Scala实现的、目前市面上仅有的生产级别的Service Mesh,但是资料少,学习成本高,二次开发和功能扩展困难, 整体开发生态还没建立起来。

  Spring Cloud Gateway 是Spring Cloud创建了一个嵌入式Zuul代理,所以两者实质上都是Netflix Zuul, Zuul的性能不错,Zuul 2.0 本身采用了Netty 的NIO,复杂度提高了,但性能更加强悍,Zuul1.0和Spring 框架也原生集成,基于JAVA开发语言,可以和Eureka,Ribbon,Hystrix等配件组合:很容易实现 身份认证,监 控,动态路由,压力测试,负载分配,静态响应等功能,Zuul 1.0已开源6年多,很易用,在实战中也得到了检验,zuul 2.0 在超大型互联应用中还有坑要趟,但整体来说,在强大的java生态中zuul是一个很不错的技术选型方向。

  Nginx生态的Nginx+Lua+c,主要代表产品有kong等开源产品。kong 自2015年在github开源以后,已有1.69万+的star,其核心价值在于稳定,高性能,易扩展;基于nginx+c的Tengine在阿里巴巴集团内还在大量使用,尚在壮年; 京东更是用nginx+lua这套技术框架证实了亿万流量的最佳实践。虽然开发效率比较低,好在网关的逻辑足够简单,稳定,所以这个技术组合对这样一个业务场景尤其合适。用友云API网关核心部分就是基于这套框架开发的。

四.用友云开放平台的API网关可以做什么?

  API网关(API Gateway)提供了API的全生命周期管理。辅助用户简单、快速、低成本、低风险的将数据、业务逻辑或功能安全可靠的开放出来,用以实现自身系统集成、以及与合作伙伴的业务连接。目前已成功应用于用友云开放平台,APILink。

  产品特性:

  1.安全防护

  支持安全认证,自定义流量过滤,黑白名单,服务降级,流量限制,熔断等基本功能。

  2.API 生命周期管理

  提供 API 创建、维护、发布、运行、下线等操作的全生命周期管理。覆盖API定义、测试、发布用以部署API.同时提供便捷的日常管理、版本管理、支持在先版本升级和快速回滚。节约因 API 管理而造成的工作量与人力。

  3.请求管理,链路追踪

  请求经过 API 网关,可根据您的配置进行参数类型、参数值的校验,减少后端对非法请求、无效请求的资源消耗和处理成本。同时,您可以在 API 网关定义参数映射规则,网关通过映射规则将后端服务通过映射翻译成任何形式,以满足不同用户的不同需求,从而避免功能重复开发。请求过程全链路追踪机制,方便快捷定位问题。

  4.监控告警,统计分析

  提供实时、可视化的 API 监控,包括:调用量、调用方式、响应时间、错误率,让您能够清楚的了解 API 的详细信息和分析用户的行为习惯。方便用户的运维管理,以便 API 的后期迭代与维护,提高效率。支持自定义报警规则,来针对异常情况进行报警,缩短故障处理时间。

原文地址:http://blog.51cto.com/14084875/2328563

时间: 2024-10-11 00:36:52

用友云开放平台之API网关的相关文章

WO+开放平台:API调用开发手记(话费计费接口2.0)

WO+能力共享平台(http://open.wo.com.cn)是中国联通推出的开放平台.拥有的丰富电信能力资源以及深度整合挖掘的第三方能力资源等.WO+平台提供的API均为简洁优雅的RESTful风格,极大的方便了开发人员的使用. 上段为废话.如今言归正传.我会用一个简单的演示样例来说明WO+平台的API是怎样地简单,怎样地好用. 本文代码请參见:https://github.com/sharetop/WoPlus_Java_SDK A:确认流程 以调用量最大的『计费能力2.0』为例.先来看看

新浪微博开放平台API

关于新浪微博开放平台有很多问题,网上文档写的不是很清楚,授权机制把我给难住了 不清楚怎么回事一直报没有权限 EMAIL给开发人员也没回应 偶然尝试到一个方法  States返回了成功 如下代码: 1.在head 引用 <meta property="wb:webmaster" content="8998f19501c5a01c" /> <script src=" http://tjs.sjs.sinajs.cn/open/api/js/w

RSA/SHA1加密和数字签名算法在开放平台中的应用

加密算法 加密算法分为两大类:1.对称加密算法:2.非对称加密算法.   密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使用另外一把密钥解密 RSA非对称加密算法 RSA是目前应用最广泛的非对称加密算法,各种语言都支持RSA算法,如Java,Python,C++(openssl),Go(openssl),PHP(openssl),Object-C,Android,javascript等. 对于一个私钥匙.有且只有一个与

基于百度AI开放平台的人脸识别及语音合成

基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜值等信息,将信息返回到Web界面进行显示. (2)人脸比对 在Web界面上传两张人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口比对照片信息,返回相似度. (3)语音识别 在Web页面上传语音文件,判断语音文件格式,如果不是wav格式进行转码处理,然后调用平台接口进行识别,

Net分布式系统之六:微服务之API网关

本人建立了个人技术.工作经验的分享微信号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件“API网关”. 一.引言 随着互联网的快速发展,当前以步入移动互联.物联网时代.用户访问系统入口也变得多种方式,由原来单一的PC客户端,变化到PC客户端.各种浏览器.手机移动端及智能终端等.同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接.共享数据的需求.所以系统需要升级框架满足日新月异需求变化,支持业务发展,并

API网关

微服务之API网关 一.引言 随着互联网的快速发展,当前以步入移动互联.物联网时代.用户访问系统入口也变得多种方式,由原来单一的PC客户端,变化到PC客户端.各种浏览器.手机移动端及智能终端等.同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接.共享数据的需求.所以系统需要升级框架满足日新月异需求变化,支持业务发展,并将框架升级为微服务架构."API网关"核心组件是架构用于满足此些需求. 很多互联网平台已基于网关的设计思路,构建自身平台的API网关,国内主要有京东.携程.唯品会

新浪微博开放平台深度历险

作者:蒋宇捷(hfahe) 版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明. 10月21日补充 解决Ajax跨域的方法 可通过新浪提供的JS SDK解决,详情參考http://open.t.sina.com.cn/wiki/index.php/JS-SDK,须要在server嵌入xd.html文件. 简单介绍 新浪微博开放平台的体系參考了Twitter,两者很相似,包含接口.參数的定义,请求方式等等,假设熟悉Twitter的API,基本能够相同的适用到

淘宝开放平台php-sdk测试 获取淘宝商品信息(转)

今天想使用淘宝开放平台的API获取商品详情,可是以前一直没使用过,看起来有点高深莫测,后然看开发入门,一步一步,还真有点感觉了,然后看示例,还真行了,记下来以后参考.其中遇到问题,后然解决了.因为我已经有APPKEY了所以,我使用的是正式环境,大家可以使用测试换进,设置稍微有点区别: 1.下载PHP SDK,下载地址:http://open.taobao.com/doc/detail.htm?spm=0.0.0.21.e7516f&id=34#s1 2.PHP SDK解压后,lotusphp_r

.Net微服务架构:API网关

本人建立了个人技术.工作经验的分享×××号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件"API网关". 一.引言 随着互联网的快速发展,当前以步入移动互联.物联网时代.用户访问系统入口也变得多种方式,由原来单一的PC客户端,变化到PC客户端.各种浏览器.手机移动端及智能终端等.同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接.共享数据的需求.所以系统需要升级框架满足日新月异需求变化,支持