京麦开放平台架构演进与优化之路
简介
—— 从全视角以时间线的方式,介绍京麦开放平台的发展演变和架构体系,重点讲解京麦HTTP网关和京麦TCP平台,如何实现API快速接入承载海量HTTP请求调用,以及如何建立TCP全双工的长链接会话通道;深度剖析基于Zookeeper的网关Register Center、基于Netty的平台TCP长链接Container、基于ElasticSearch、HBase的消息Search Engine等。
京麦(jingmai.jd.com)是京东面向卖家的多端多角色一站式协同工作台,其核心是为商家整合:店铺管理工具、经营咨询消息、商业伙伴关系,借此提升卖家的经营效率,促进彼此间的合作共赢。

京麦从2014年初创,逐步完成平台化转型,实现对外服务开放。
开发版图
不断优化京麦插件流程,搭建京麦开发者中心、运营中心、服务市场等,提供应用发布、订购、支付、结算等服务能力,构建京麦新生态。为商家提供多款服务应用,日活跃商家 1万+。
以打造高可用高性能服务以己任,优化网关调用、细化错误码、可追踪的调用日志等,开放服务接口 500+,日调用量上亿次,99% 的调用性能在 200ms 以下。

平台版图
完成平台与网关的隔离,保证平台服务的稳定性。改用 TCP 通信框架,以 ProtoBuf 为传输协议,建立 Session 会话机制,实现请求响应、通知应答的上下行通道,保持长链接在线 1万+。
重构消息通讯模型,以基于 ElasticSearch 存储的消息云端,实现 TCP 在线通知和 IOS Push 的半推半查的消息推送模型,并通过互通协议实现消息与插件的协同办公模式。


① 基于OAuth2的插件授权流程

京麦插件授权采用 OAuth2 协议,OAuth2 在客户端与服务提供商(Resource Server)之前,设置了一个授权层(Authorization Layer)。客户端不能直接登录服务提供商,只能登陆授权层,以此将用户和客户端区分开来。客户端登录授权层所用的令牌(token),与用户的密码不同。用户在登录的时候,指定授权层令牌的权限范围和有效期。
京麦通过用户在启动插件时,客户端通过授权层生成用户令牌(Token),用户通过令牌访问服务提供商获取数据。
② 基于HTTP和TCP长连接的消息推送

This chapter requires login to view full content. You are viewing a preview.
Login to View Full Content