API管理的正确姿势--API Gateway

news2024/9/29 15:25:28

淘宝API管理的正确姿势--API Gateway

编者按:

数字化生态,以创新客户体验为核心,所有我们身边能感知到的变化都来自于渐近的创新。这些创新需要试错,需要不断的升级,并且创新往往与我们熟知的功能分离开来分别呈现。微服务对于传统单体架构的优势之一就在于,服务的拆分带来了更新、部署、管理的隔离性,让一些单独的服务可以进行创新和实验。从而支撑了用户体验的不断升级,为实现企业数字化转型的过程,提供了技术架构层面的支撑。

我们现在已经可以很方便的通过一些电子商城购买运营的合约机,而无需到营业厅亲自办理相关的业务,这就是API Gateway的一种底层支撑。由于运营商通过API Gateway向第三方的商务平台开放了与套餐、机型销售等服务,并通过流控、鉴权等机制保障相关的安全性,才使得这样方便流畅的购物体验得以实现。

对于MOBA手游类玩家来说,“王者荣耀”是一款颇受欢迎的游戏。在一些场景下,我们会感知到“不停机更新”“体验服更新”这两种不同方式的更新形态,在底层,就是API Gateway或者类似技术的实现,支撑灰度发布,让一些新特性发布给体验服(比如传说中露娜的二技能变化,仅在体验服更新,实际上并未如传说中一样在S11赛季更新到正式服),或者特定的游戏用户,待功能完善或者稳定运行,再向正式服或者全部用户发布,让游戏玩家的体验可以更加流畅,甚至是无感知的升级。

这些只是微服务架构或者API Gateway所支撑的万千业务场景中的沧海一粟。

但微服务本身也会带来诸多问题,粒度小难以管理就是其中之一,本文即从这个角度,阐述了API Gateway所起到的作用和一些关键的技术要素。

以微服务为核心的分布式框架贯穿了普元数字化企业技术平台的APaaS层面,本文所介绍的API Gateway是其中的关键组成部分(图中标黄的部分)。

引言:

随着微服务的大红大紫,大家纷纷使用微服务架构来实现新系统或进行老系统的改造。当然,微服务带给我们太多的好处,同时也带给我们许多的问题需要解决。采用微服务后,所有的服务都变成了一个个细小的API,那么这些服务API该怎么正确的管理?API认证授权如何实现?如何实现服务的负载均衡,熔断,灰度发布,限流流控?如何合理的治理这些API服务尤其重要。在微服务架构中,API Gateway作为整体架构的重要组件,它抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能,帮助我们解决很多API管理难题。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业级信息系统开发讲课笔记4.9 Thymeleaf模板引擎

文章目录 零、学习目标一、Spring Boot支持的视图技术二、Thymeleaf基本语法1、Thymeleaf常用标签2、Thymeleaf主要语法3、Thymeleaf内置对象4、Thymeleaf模板基本配置 三、Spring Boot整合Thymeleaf1、创建Spring Boot项目ThymeleafDemo2、在全局配置文件里配置Thymeleaf属性3…

简化本地Feign调用,老手教你这么玩

原创:微信公众号 码农参上,欢迎分享,转载请在文章头部保留出处,侵权必究 哈喽大家好啊,我是Hydra。 在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突…

ChatGPT涉及的法律风险综述

ChatGPT(Chat Generative Pre-trained Transformer),是OpenAI研发的聊天机器人程序,于2022年11月30日发布。从发布的那一刻至今,ChatGPT一直受到各界的广泛关注。作为人工智能技术驱动的自然语言处理工具,它…

一种简单的文本监督语义分割框架

文章目录 A Simple Framework for Text-Supervised Semantic Segmentation摘要本文方法动机Locality-Driven Alignment(LoDA)SimSeg Framework 实验结果 A Simple Framework for Text-Supervised Semantic Segmentation 摘要 文本监督语义分割是一个新…

音频转文字工具都有哪些?分享三款好用的录音转文字软件

对于许多人来说,录音已经成为了记录重要信息的常用方法。但是,在实际应用中,往往会遇到如何将这些录音内容转换为文字记录的挑战。这是一个备受关注的问题。那么,录音如何转为文字呢?这篇文章就来给你推荐几个非常好用…

yolov5 的 mAP 和 召回率很低,但是精准率 AP还可以

可能的原因: 标注问题, 检查图片没有txt,导致有正样本的图片,被认为是背景,召回率降低。是否是中文路径, opencv这个cv2.imread不能读取中文图像。 改成这样就行。

预约按摩系统平台开发,常见问题解答

预约按摩平台系统常见问题: 预约流程:按摩系统提供简单易用的预约流程,用户只需要提供必要的信息即可完成预约,同时也可以随时修改或取消预约。 付款方式:按摩系统支持线上和线下支付方式,其中线上支付采用…

使用python-docx在文档中插入图片

在文档中添加图片的方法如下: from docx import Document from docx.shared import Inches, Cmdocument Document() document.add_heading(大标题, 0)# 新建word文档 p document.add_paragraph("下面插入图片:")document.add_picture(test_…

电力监控系统在电力系统中的应用

安科瑞虞佳豪 一年一度高考和中考即将来临,日前,国网咸丰县供电公司积极有序开展保电工作,全面进入“高考保供电”模式。 为全力保障高考期间供电安全,国网咸丰县供电公司将大水线供电线路采取分流运输方式,将除春晖…

IDEA之Mybatis Log Plugin的使用

Mybatis Log Plugin是一个用于记录Mybatis SQL语句执行情况的插件,帮助开发人员方便地追踪和分析Mybatis执行的SQL语句,从而更容易地找出程序中存在的问题和优化SQL语句的性能。 Mybatis Log Plugin可以以日志的形式记录Mybatis执行的SQL语句、执行时间…

win批量取消快速访问固定

win批量取消快速访问固定

Hibernate框架【五】——基本映射——多对多映射

系列文章目录 Hibernate框架【三】——基本映射——一对一映射 Hibernate框架【四】——基本映射——多对一和一对多映射 基本映射——多对多映射 系列文章目录前言一、多对多映射是什么?二、hibernate多对多关联映射(单向)1.实体结构2.示意…

Flink Table/Sql自定义Kudu Sink实战(其它Sink可参考)

目录 1. 背景2. 原理3. 通过Trino创建Kudu表4. FlinkKuduTableSinkProject项目4.1 pom.xml4.2 FlinkKuduTableSinkFactory.scala4.3 META-INF/services4.4 FlinkKuduTableSinkTest.scala测试文件 5. 查看Kudu表数据 1. 背景 使用第三方的org.apache.bahir flink-connector-ku…

​2023年湖北企业人力资源管理师报考条件是什么?启程别告诉你

2023年湖北企业人力资源管理师报考条件是什么?启程别告诉你 2019年国家就取消了企业人力资源管理师国家职业资格考试,现在是改革为职业技能等级认证,由人社部监管的第三方组织机构组织考试和颁发证书,那改革后的企业人力资源管理师…

创建镜像-dockerfile

Docker 镜像的创建 创建镜像有三种方法: 1.基于已有镜像创建、 2.基于本地模板创建 3.基于Dockerfile创建。 基于现有镜像创建 首先启动一个镜像,在容器里做修改 docker create -it centos:7 /bin/bash然后将修改后的容器提交为新的镜像&#xff…

在JavaScript中的数据结构(队列)

文章目录 什么是队列?创建队列新建队列队列可用的方法队列添加元素队列移除元素队列查看元素查看队列头元素检查队列是否为空检查队列的长度打印队列元素 完整队列代码 循环队列优先队列是什么?总结 什么是队列? 当我们在浏览器中打开新标签…

【1483. 树节点的第 K 个祖先】

来源:力扣(LeetCode) 描述: 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个…

pyecharts使用案例二——全国疫情可视化地图开发

代码 import json from pyecharts.charts import Map from pyecharts.options import *f open("./疫情.txt", "r", encoding"UTF-8") data f.read()f.close()# 取到各省份数据 # 将json字符串转为python字典,反序列化 data_dict json.loads(…

vue3-实战-07-管理后台-属性管理模块开发

目录 1-需求原型分析 2-三级分类全局组件封装 2.1-三级分类组件请求接口和数据类型封装 2.2-组件获取数据渲染数据 3-属性管理列表开发 3.1-请求接口和数据类型封装 3.2-获取数据渲染数据 4-新增编辑属性 4.1-需求原型分析 4.2-新增编辑接口封装和数据类型定义 4.3-…

IDEA在Maven settings.xml失效的情况下反编译代码

在我们日常的工作中有时候会遇到需要调试别人的代码的问题,这个时候别人往往会给你一个jar包,这个包里面的代码都是经过编译的,点击打开函数以后都是后缀是.class的文件,我们调试起来非常不方便,这个时候如果我们想要下…