京东商城 API 网关架构师 常亮 - API网关实践

2020-02-27 478浏览

  • 1.API网关实践 常亮
  • 2.
  • 3.目录 CONTENTS PART 1 架构演进 PART 2 技术实践 PART 3 运营能力 PART 4 未来规划
  • 4.PART 1 架构演进 演进历程 当前架构
  • 5.演进历程 2013 无线服务端完成第一次架构升级, API网关诞生 2015至今 数据、流控、基础建设 2011-2012 单应用 2014 API网关异步化
  • 6.当前架构 DNS/IP直连 HTTP1.1 DNS/IP直连 HTTP2 VIP LVS(L3) LVS(L3) LVS(L3) SSL NGX(L7) NGX(L7) NGX(L7) HTTP1.1 API网关 HTTP1.1 JSF长连接 业务A … 业务N IDC1 调度 HttpDNS VIP LVS(L3) LVS(L3) LVS(L3) SSL NGX(L7) NGX(L7) NGX(L7) HTTP1.1 API网关 HTTP1.1 JSF长连接 业务A … 业务N IDC2
  • 7.PART 2 技术实践 技术选型 线程模型 性能优化 网络优化 安全控制
  • 8.技术选型 • 稳定为先 小步快跑 • 深入源码 稳扎稳打 Servlet 2.5 Blocking HttpClient 阻塞,只支持http Servlet 3.0 Async HttpClient JSF 非阻塞,支持HTTP、JSF Netty Async HttpClient JSF 弥补解析请求时部分 阻塞的缺陷
  • 9.技术选型 • Tomcat的不足 Read request Headers Read request body Write response • Netty的使用 connect connect connect connect Acceptor NIO Non blocking Blocking Blocking NIO2 Non blocking Blocking Blocking … … IO Thread1 IO Thread2 IO ThreadN IO线程池 Business Thread1 Business Thread2 Business ThreadN 业务线程池
  • 10.线程模型 • Blocking问题
  • 11.线程模型 • 分析解决 网关线程池 占用线程 阻塞IO转发 响应APP 归还线程 网关线程池 归还线程 占用线程 AsyncContext IOReactor callback 响应APP …
  • 12.性能优化 • Dispatch模块之Http Dispatch IDC维度告警 流量切换IDC 排查出问题的IDC 实例存活,流量很小,问题究竟出在了哪儿?
  • 13.性能优化 • Dispatch模块之Http Dispatch callback failed completed cancelled 后绪处理抛出异常 IOReactor
  • 14.性能优化 • Dispatch模块之Http Dispatch 共争一把锁 QPS 提升30% 分段
  • 15.网络优化 • 考量因素 APP http https Haproxy API网关 1 连接复用时请求被阻塞 2 网络流量大 3 延迟高
  • 16.网络优化 • 提升效果 APP http1.1 Http2.0 session ticket Nginx API网关 http1.1 http2.0
  • 17.安全控制 网络传输SSL API权限控制 请求数字签名 API数据安全 身份认证 API多维度流控
  • 18.安全控制 • 限流&分流 1 链式调用 2 令牌桶机制 3 线程无休眠 限流策略1 -> 限流策略2 -> … 限流策略N 限流引擎 分流策略1 -> 分流策略2 -> … 分流策略N 分流引擎
  • 19.安全控制 • 流控维度 API+用户特征 API API+地域 API+运营商 API+客户端类型 API+地域+运营商 API+特征组合 • 流控粒度 秒 分钟 小时 天
  • 20.PART 3 运营能力 完善的配置管理 灵活的流量调度 强大的数据分析 良好的工具建设
  • 21.运营能力 京东APP M站 WQ 其它 协议转换 安全控制 路由服务 数据生产 API网关 HttpDNS 数据平台 工具集 监控告警 管理平台
  • 22.完善的配置管理 可视化操作 一切管理可视化支持PC、移动端 配置实时 实时生效 延迟生效 流程化 工作流审批,支持PC、移动端 权限精细化 权限细分,操作可追溯
  • 23.灵活的流量调度 • HttpDNS 最大限度减少域名劫持 灵活的流量调度 文本 APP ip直连 ip dn port ttl HttpDNS VIP1 VIP2 …
  • 24.灵活的流量调度 • HttpDNS 精确调度 操作灵活 支持PC、移动端
  • 25.强大的数据分析 • 数据生产 UDP传输为主 JSF备用 数据筛选 协议适配 API网关 Data Keeper 业务指标平台 网关数据平台 安全分析平台 其它
  • 26.强大的数据分析 • 网关数据平台 ▶ 海量数据实时分析 ▶ 模型随时上线 ▶ 界面展示可配置 ▶ 数据权限精细化 ▶ 丰富的告警策略 ▶ 数据报表可订阅
  • 27.良好的工具建设 为zk集群提供zk节点可 视化操作、精细化权限管 理、数据迁移、节点监控、 报警等功能 精确到城市的流量调度能 力、多维度的流量切换方 案 通过浏览器远程监控 JVM运行状况,进行性 能调优、异常排查的工具 组件
  • 28.PART 4 未来规划
  • 29.未来规划 API开放平台 大数据 产品化 智能化运营
  • 30.Thanks!