API网关实践-网易云轻舟微服务

摘要:
轻舟微服务API网关实践网易云轻舟微服务平台包括了API网关组件,严格意义上讲,API网关并不算NSF内组件,但以网易微服务实践经验来看,API网关又是微服务架构下的一款非常主要的工具型组件。先看一下API网关与NSF整合的架构:可以看出,API网关为微服务集群提供了外部调用认证、服务/API管控、路由、审计等能力的解决方案。轻舟微服务API网关应用在德邦快递的微服务实践中,API网关提供了统一的认证、鉴权、API监控、熔断、限流、降级等功能。

微服务最佳实践中,我们需要通过统一的 API 网关进行服务能力的共享,API 网关为用户提供发布、管理、保护和监控 API的能力,帮助用户在自己的多个系统之间,或者内部系统与合作伙伴以及第三方的系统之间实现跨系统、跨协议的服务能力互通。

API网关应用场景

API网关有三种典型的应用场景:

内部业务集成:规范系统间API接口,快速完成企业内部系统的解耦及前后端分离,实现可管可控的相互访问。

对外能力开放:将企业内部服务能力以标准API的形式开放给外部合作伙伴或第三方,与外部用户可管可控地共享服务、能力和数据,达成深度合作,共建新生态。

交付标准化:实现软件交付的标准化,提高交付质量,以及确保软件可迭代。

API网关实践-网易云轻舟微服务第1张

作为后端服务的统一访问入口,除了服务路由的基本功能,API网关还可以加持服务治理,保证后端服务的稳定性,比如集成流控和熔断功能,前者可以防止服务被恶意攻击,后者能在后端服务发生异常的情况下保证不会发生“雪崩”效应。

轻舟微服务API网关实践

网易云轻舟微服务平台包括了API网关组件,严格意义上讲,API网关并不算NSF内组件,但以网易微服务实践经验来看,API网关又是微服务架构下的一款非常主要的工具型组件。Spring Cloud提供了Zuul作为API网关组件,提供了主体功能,但功能相对单薄,代理效率一般(1.x是同步模式,2.x已改为异步),较难满足网关生态需求。我们团队在NSF研发前,已经自研了一套包括服务网关(Gateway)+网关自助管控平台(GPortal)系统,提供了较完善的API网关解决方案。

先看一下API网关与NSF整合的架构:

API网关实践-网易云轻舟微服务第2张

可以看出,API网关为微服务集群提供了外部调用认证、服务/API管控、路由、审计等能力的解决方案。

API网关实践-网易云轻舟微服务第3张

本文不对API网关进行详细介绍,仅简要说明我们自研API网关主要的特性:

基础请求代理:采用Servlet3.0+HttpAsyncClient实现异步化,单点万级TPS转发能力;

审计与统计分析:对服务请求进行异步审计与统计分析,多维度审计查询、统计图表、依赖拓扑展示;

服务治理能力:融合Eureka服务注册/发现,网关层熔断、线程隔离、限流;

自定义插件:基于Groovy自定义filter、路由插件;

统一认证:基于RBAC统一认证请求合法性;

服务知识库与发布:形成了标准化API管理、导入/导出、Swagger/Markdown文档、发布/下线,基于OpenAPI的微服务规范流程控制(网易云内部在用标准);

API测试:基于API元数据与发布环境,快速完成API的测试;

SLA与报警:提供服务SLA检查与运行时监控报警。

轻舟微服务API网关应用

在德邦快递的微服务实践中,API网关提供了统一的认证、鉴权、API 监控、熔断、限流、降级等功能。当然,熔断、限流、降级在注册中心也会进行一次。

通过自定义分流插件功能,德邦快递可以灵活地针对全国不同地区的客户进行不同处理。而通过流量镜像功能,德邦快递可以通过网关复制流量到压测环境中,从而更好地进行压测。

免责声明:文章转载自《API网关实践-网易云轻舟微服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇通过c#操作word文档的其他方式javascript动态加载三下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

中央气象台天气预报api调用

今天突然要做一个天气预报的应用,上网搜了一下,发现可用的api其实挺多的,包括谷歌、雅虎、中央气象台等等。 谷歌的天气预报的优点在于可以直接获取支持查询天气的国家和城市。并且可以预报4天天气,支持经纬度查询天气(这个可以利用GPS做应用)。缺点也是惊人的:支持的中国城市比较少。 雅虎的天气预报返回的是xml数据,我需要的是json数据,所以也没什么好感。...

百度云服务器与域名绑定,设置解析记录

前段时间,百度推送了一条消息,一个很便宜的服务器,我就买了。 很久以前,购买的域名www.ab123.com.cn,放在了阿里云,也就是用了阿里云的DNS。 就这样,一直闲着。 这两天没事,想着能不能做个网站起来。其实就是用已有的index.php文件上传到服务器,看看网站效果。 哎,这不是专业出身的就是难,搞来稿去,还是半成品。 下面开始说重点。 1、登...

web前端页面中异步使用百度地图API

<div id="allmap"></div> 1 //百度地图API功能 2 functionloadJScript() { 3 var script = document.createElement("script"); 4 script.type = "text/javascript"; 5 script.src = "htt...

5G 时代的 IoT 与边缘计算—— EMQ 在 GIAC 2020

GIAC 2020( GLOBAL INTERNET ARCHITECTURE CONFERENCE,简称 GIAC )于近日在深圳圆满落幕。GIAC 由高可用架构技术社区和 msup 联合推出,高度关注互联网技术与架构,是中国地区规模最大的技术会议之一。 作为面向架构师、技术负责人及高端技术从业人员的年度技术架构大会,本届大会组委会从互联网架构最热门的前...

神牛微信信使,微信消息通知,微信消息关键字监控,微信通知机器人

当创业遇到瓶颈,当对项目感到绝望,那就做一些自己感兴趣的东西。闲极无聊做了个微信通知机器人。 机器人地址:https://x8xm.com/message 什么是”神牛微信消息助手“?简而言之,就是我们有个微信机器人,您只要用您的微信加它为好友,然后get/post发消息给它,它就可以把消息转发到到您的微信上! 第1步:扫码添加机器人为微信好友 第2步:...

如何在网中使用百度地图API自定义个性化地图

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <...