京东JOS开放平台架构1JOS简介23JOS京东开放平台JOS平台化Jos异步化01JOS京东开放平台•JOS•JingdongOpenService,京东开放服务的缩写,是对外提供京东开放接口服务的工具平台。•面向上游合作伙伴•下游用户•共8大类500+的api仓储配送售后移动商城流量生态卖家服务数据ITJD基础上游下游APIAPIAPI商家ISV移动开发者供应链开发者APPJOSServiceprovide数据的调用流向OAUTH2.0授权认证ISVJOS授权系统京东登录中心授权中转发授权通知为什么要开放?丰富平台应用对平台共享用户群对开发者商品促销购物车订单用户评论售后仓储配送供应链数据广告联盟APIJOS开放服务平台文档中心开发者中心沙箱环境JOS网关JOS消息授权认证京东服务市场商家用户合作伙伴ISV开发社区02JOS平台化Josisp接入方式接入流程痛点1:一个团队无法支承载个公司的业务痛点2:api上线,文档SDK,测试工具的同步!痛点3:接入速度受到JOS人员限制臃肿的接入每次JOS要接入一个新接口的时候都必须引入服务端的serverclient这样使得JOS的系统臃肿丌堪问题负债因为嵌入的client嵌入的太多,依赖的服务越来越多这样出现的问题就是我们被这些链接束缚。定标准定规则•服务统一描述接入IDL•统一服务测试发布流程•API验证统一识别提取调用参数Client接口验证Jos-ProtocolInterface-metadataValidate-metadataDocument-metadatarestful-mapping自动化自动化•自动化生成文档•自动化生成测试工具•自动化生成SDKJos-ProtocolInterface-metadataValidate-metadataDocument-metadatarestful-mapping创建协议SDK-EngineJAVAPHPIOS…Document-EngineHtmlDocxmlTest-EngineSAF通过协议中的数据和引擎生成需要的SDK,文本文档,测试工具业务分离化丌能有升级回滚•可短暂测试•可动态降级•可灰度发布Systempipev1Flowpipev1Rpcpipev1ResultPipev1Systempipev2Flowpipev2Rpcpipev2ResultPipev2Jos-业务业务分离PipelineSystempipeFlowpipeRpcpipeResultPipe过滤调用pipev1pipev2pipev2pipev3pipev1pipev2pipev2pipev1Safepipemanagerpipelinepipelinepipelinepipelinepipelinepipelinepipelinepipelinepipeline自动容灾02异步化为什么要异步化?根本原因容器线程池利用率丌高•请求处理天然异步化的请求需要•减少链接带来的消耗充分利用服务端并行处理能力•减少业务处理丌稳定容器线程池低效率占用EventownerQUEUEEventrequestresponse异步PipelineServlet3.0SystempipeFlowpipeRpcpipeResultPipeJosendpointpoolDeployAPIpoolThread-poolWatchdog同步同步同步同步结束容器线程同步调用平台调用同步异步阻塞同步同步结束容器线程线程池线程结束异步阻塞调用服务隔离同步异步非阻塞同步同步结束容器线程线程池线程结束异步非阻塞调用提升性能同步异步非阻塞同步合并结束容器线程线程池线程结束多线程合并调用并行处理API看护系统EventownerQUEUEEventrequestresponse执行结构PipelineServlet3.0SystempipeFlowpipeRpcpipeResultPipeJosendpointpoolDeployAPIpoolThread-poolWatchdog问题原因Thread-pooleventeventeventeventThread-poolEventownerQUEUEEventrequestresponse资源调配池PrivatethreadsQueuePrivatethreadsQueuePrivatethreadsQueueThread-poolPublicThreadsgetreleaseprivatepublicprotect资源调配模型EventownerThread-poolQUEUEEventrequestresponsegetreleaseprivatepublicprotect调用过程谢谢Q&A