淘宝开放平台架构整理资料
一.淘宝开放平台在架构方面的特点、在系统稳定和数据安全性方面用到的技术
淘宝开放平台架构关键词:透明,核心模块小,按需简化设计,多层次设计配合(js,client,server),服务模式创新。
系统稳定:1.Web容器异步化支持服务流控和隔离。同步的http服务处理模式在初期后端服务不多,服务质量差异不大的情况下能够满足需求,但是当后端服务越来越多(最初30个公开服务到今天300多个公开服务),服务质量和响应参差不齐的情况下,开放平台自身的稳定性直接受制于后端某一个服务,因此当后端某一个服务出现不稳定,就会直接使得淘宝开放平台服务全线无法服务,因此将同步的http服务中转改造为异步中转并设置了权重线程池来差异化对待不同重要度的服务,最后实现服务之间质量影响隔离,服务与平台稳定性隔离。
2、.基于流式数据分析可以每一分钟产出业务和系统的统计数据。对比一些基线和告警阀值,最快速度的定位问题,并且采取运行期控制的方式来避免问题的扩大。
数据安全:
1.淘宝开放平台是所有开放平台中对于数据安全要求最高最细的开放平台,当前除了使用业界标准的OAuth2,同时还将安全控制从服务纬度细化到了服务字段级别,同时对于数据安全性分成了四个级别,结合应用形态和应用安全指标差异化控制。
2.通过JS组件化集成实现对用户发起服务和isv应用服务端发起服务的差别验证,对于电子商务买家类服务开放提高了安全性。3.提供无线端SDK静态类库方式,平衡无线用户的安全性和用户体验。
二.面对这种突发的海量访问请求,淘宝开放平台采取的应对措施
平台自身对于数据流解析,异步化都保证了高效的系统处理能力,同时可以卸载的一些服务控制保证了服务控制流程如果出现问题可以随时降级处理,保证业务正常支持。另一方面,对于海量订单的对外输出,提供了Streaming api,降低轮询服务带来的压力,同时能够给开发者和商家最快速的消息投递。
三.如何合理的定义设计API接口
对于数据获取类服务非常重要的一点就是保留fields字段,也就是可支持有选择的数据返回,这样对于服务升级(字段增加或者减少)都会非常主动,同时也非常适合做QL映射。
另一方面,对外提供服务必须要先定义服务处理所对应的资源定义,这样可以避免服务过程化设计开放(服务要设计为面向资源开放),保证业务内部逻辑变更对外透明。对于操作型服务(更新,删除,新增),需要防范重放攻击,业务需要支持一些主键字段或者随机一次性会话字段。