AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

电影垂直行业的云智开放平台如何炼成?

  • 2020-03-15
  • 本文字数:2545 字

    阅读完需:约 8 分钟

电影垂直行业的云智开放平台如何炼成?

一、前言

云智是阿里影业旗下的影院数字化经营管理开放平台,主要负责影院管理及影票卖品的售卖。


本文以云智开放平台为例,将为您揭开 B 端垂类电影行业开放系统的 高性能 API 网关、高可靠消息服务、高安全性数据服务 等技术内幕。



(图 1.1 云智开放平台生态)

二、开放平台架构大图

1.开放平台技术大图



(图 2.1 开放平台技术大图)


开放平台的组成包括:泛 ISV 的调用方、综管门户、网关和业务系统,业务系统通过网关开放业务给到 ISV 调用方,网关与业务系统使用泛化调用,综管主要包括对 API 生命周期管理等功能。


2.开放平台部署架构图



(图 2.2 部署架构图)


部署架构包括:网关集群、综管平台集群、云智各个业务集群,对于开放平台,核心关注网关和综管集群,为了网关的高性能,在云数据存储这块引入分布式缓存。

三、如何搭建高性能的 API 网关

1.网关总体技术架构图



(图 3.1 API 网关技术架构图)


架构图中的 5 层是网关真正的应用层功能,每一层都解决一个核心问题:


1)协议层:解决客户端/调用方如何来连接网关的问题,主要做的事情,按照某种协议去监听,数据协议是怎么样的,最终转换成网关内部私有协议;


2)控制层:一个请求过来之后,网关如何认证这个请求是合法的,是经过认证的请求,保证每个请求都是安全的请求;


3)调度层:针对一些异常处理,流程路由的处理,这里做的是要怎么样去处理的问题;


4)服务编排:API 和 Server 之间的映射和编排,复杂的场景都是在这层进行处理的;


5)调用执行:拿到这个请求之后,最终是调用外部的一个服务,是如何调用的,在这层实现。


2.网关的缓存模式


1)网关缓存模式:



(图 3.2 网关缓存示意图)


2)流程说明:


a)网关会对缓存进行分级存储,以保证最快的访问速度,数据访问的时候,访问顺序依次是本地缓存->分布式缓存->数据库;


b)在保证数据一致性方面,由于缓存的是元数据,元数据的特性决定了其变动少,时效性要求低的特性,因此,网关采取了分布式缓存主动失效,本地缓存被动失效的策略,已减少代码复杂度。


3.多维度的流量控制


流量控制:既控制 API 在单位时间内允许被通过调用的次数,简称流控。


1)流量控制的原理



(图 3.3 流量控制流程)


2)工作流程单机阀值策略:总阀值/机器数 * 80%;


全局流控策略:低于单机阀值:走内存计数;高于单机阀值:走分布式缓存计数。


3)流控类型



(图 3.4 流量控制类型)


目前云智开放平台提供了以下流控方式,(1)API 的滑动窗口时间内的全局流量控制;(2) API 支持定制 APPKEY 进行流量控制;(3)基于 APP 维度的流控,对 APPKEY 访问平台 API 的流量进行控制。

四、高可靠的消息服务

1.总体架构



(图 4.1 消息服务架构图)


2.消息模式


1)网关的消息通知是通过异步的 HTTP 回调+消费方的主动确认两种方式来确保消息的可达,异步的 http 回调可以理解为消息的推模式,而消费方主动确认则可以理解为消息的拉模式;


2)目前消息模式的使用场景主要是在异业会员之间信息拉通,例如会员消息注册,会员信息变更,积分变更等,均会使用消息来进行内部与外部系统信息的同步。


3.如何保证消息不丢失?


1)利用消息中间件本身的重试机制,确保网关能至少正确消费一次消息(at lease once);


2)接收消息后,持久化到磁盘,留待后续追溯与重试;


3)根据消息的订阅关系投递到对应的订阅者,成功则更新消息状态,失败则留待定时任务扫描;


4)对投递失败的消息,进行间隔 10,20,40 分钟的重试,三次重试均失败后,则标记为失败,不再主动投递;


5)消息消费方根据业务需要定期主动发起失败消息的查询以防止消息的遗漏。

五、高安全性的数据服务

1.API 授权方式


云智开放平台采用 OAuth2.0 作为授权协议,授权流程可以简单归纳为:


1)获取临时令牌 code;


2)用临时令牌 code 换取长时令牌(refreshToken)以及访问令牌(accessToken);


3)访问令牌过期后用长时令牌(refreshToken)刷新访问令牌(accessToken)。


授权及使用授权时序图如下:



(图 5.1 API 授权时序图)


2.API 访问控制


用于 API 访问权限控制,可限制 API 只对部分商户开放,或者不允许 APPKEY 跨商户、跨渠道等访问。


在云智开放平台中,访问控制主要由:权限组和访问控制水平鉴权配合组成,开放网关增加了访问控制水平鉴权的功能,达到控制商户访问隔离、数据隔离。访问控制原理如下:



(图 5.2 API 访问控制图)


对 APPKEY 进行访问控制的设置,配置访问策略,访问策略可以配置为 API 接口的请求参数,开放平台网关会根据访问策略判断用户的请求是否合法,不合法则抛出错误。


配置示例:


{"商户":["yunzhi"],"影院":["test1","test2"],"渠道":[H5]}
复制代码


3.API 返回数据控制


1)对于分配的每个 APPKEY,网关都会给其定义一个相应的数据访问等级,目前一共存在从 L1~L4 四个级别,安全等级从低到高递增;


2)对于需要严格管控的高危接口,在配置的时候,需要明确每一个字段的定义,从低到高同样分别为 L1~L4;


3)通过插件机制对每个出参进行字段匹配的过滤,不符合权限等级的出参将被直接摘除。

六、可扩展、可维护

1.可维护性-API 的生命周期



(图 6.1 API 生命周期管理图)


2.可扩展性-API 的插件机制


网关的协议监听与解析层、API 逻辑处理层、调用协议与执行层,都作为组件,可插拔的集成到网关内核中。


1)插件原理-类加载



(图 6.2 插件机制类加载图)


云智开放平台新增的,有电影行业特色的插件包括:API 访问权限控制-水平鉴权、支持云效环境项目标。

七、总结

云智开放平台是 https 通讯协议,多级缓存,消息中间件等技术的融合,专门为高性能数据访问与数据安全性把控而生的系统。达到了极速的访问与全方位的数据安全管控,回顾从系统的选型到诞生的整个过程,网关的演化也经历了下面三个阶段:


  • 具备基础核心能力,基础核心 = 服务访问 + 稳定运行;

  • 具备平台化能力,平台化 = 高性能 + 数据安全 + API 规范与审核;

  • 垂类平台特色能力,垂类化 = 插件化定制。


在这个过程中,沉淀核心技术,深入了解和落地这些技术细节,在每一次的演进中,都思考是否可以在现有技术上面,再进一步地优化,让网关可以不但高效安全,并且易于维护,虽然过程困难重重,但是只要不畏艰难,必定可以攀上高峰,在这个过程中,团队的技术思想也在不断的变化,系统也炼出了垂类平台的特色。


作者介绍


阿里文娱高级开发工程师 念贤、阿里文娱高级开发工程师 宵征


2020-03-15 10:001856

评论

发布
暂无评论
发现更多内容

Tampermonkey for Mac(油猴Safari浏览器插件)

展初云

Mac 油猴 Tampermonkey

焕新升级!新一代云原生可观测平台

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 华为云CCE容器服

QA忙不过来怎么破?

BY林子

软件测试 QA

智能问答技术在百度搜索中的应用

百度Geek说

百度搜索 智能问答 企业号10月PK榜

建立性能基线的实践方法

老张

性能测试 性能基线

携程商旅发布“全球影响力计划”

携程商旅

NFTScan 获 Optimism 基金会 Cycle 14 Grant 支持 35,000 枚 OP !

NFT Research

NFT\ NFTScan

硬件、数据、模型优化与分布式训练的实践

百度开发者中心

大模型 LLM LLMOps

深度学习预训练模型的突破与发展

百度开发者中心

模型训练 大模型 深度学习‘’ LLM

KaiwuDB 荣获“2023 IDC 中国可持续发展先锋案例”

KaiwuDB

社区迭代|ETLCloud社区新增“论坛”啦!

RestCloud

ETL 社区 论坛

Dubbo 路由及负载均衡性能优化

vivo互联网技术

负载均衡 dubbo 路由

大模型与Prompt模板全面升级

百度开发者中心

深度学习 大模型 LLM

飞码LowCode前端技术系列(二):如何便捷配置出页面 | 京东云技术团队

京东科技开发者

前端 低代码 低代码平台 企业号10月PK榜

高效集成|这一次,快人一步

RestCloud

ETL

嵌入式框架设计中的四种常用模式

互联网工科生

嵌入式

百度Comate代码助手全新上线SaaS服务,适配百种开发语言,编码效率10倍提升!

新消费日报

mac电脑智能视频画质修复软件 Topaz Video AI最新激活版

胖墩儿不胖y

Mac软件 视频修复工具

2023 云栖大会 | 「动手实践」基于阿里云构建博学谷平台实时湖仓

Apache Flink

大数据 flink 实时计算

带着问题去分析:Spring Bean 生命周期 | 京东物流技术团队

京东科技开发者

spring 生命周期 @Bean 企业号10月PK榜

Java基础面试题【Spring、Spring MVC、Spring Boot】进阶篇

派大星

Java 面试题

厦门理工计算机与信息工程学院获“火焰杯”软件测试赛全国奖项

测试人

软件测试

从图像生成到分类的深度学习策略

百度开发者中心

人工智能 深度学习 大模型 图像生成

限时领票|走进 2023 · 云栖大会,看大咖对话开源

Apache Flink

大数据 flink 实时计算

一文详解多模态大模型发展及高频因子计算加速GPU算力 | 英伟达显卡被限,华为如何力挽狂澜?

GPU算力

极盾故事|某头部私募基金“扩展检测响应XDR平台”建设

极盾科技

XDR扩展威胁检测响应

10月《中国数据库行业分析报告》已发布,深度剖析甲骨文大会Oracle技术新趋势

墨天轮

数据库 oracle postgresql opengauss 国产数据库

电影垂直行业的云智开放平台如何炼成?_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章