携程无线gateway


携程 API Gateway 携程框架研发部 王兴朝 • 背景介绍 • 架构设计 • 轻松运维 议程 • 无线流量激增 • 业务相互耦合 • 合作伙伴交互困难 • 安全问题 • 故障难以定位和快速恢复 Reqs T(day) 6Million 1Billion 03/2014 10/2015 API Gateway产生的背景 NativeApp HotelQuery API Gateway HotelOrder FlightQuery FlightOrder BusQuery BusOrder H5 Internet PrivateDMZ 架构设计 亮点: • Filter机制 • 动态部署、配置 • 自动限流、隔离、熔断 • 轻松运维 功能: • 路由转发 • 认证、反爬 • 监控 • 与现有SOA系统对接 • 内网Service可以对外网开放 • 只需一个配置项 路由转发 • 对来自外网的请求进行认证 认证、反爬 • 算法验证 • 同步验证 • 黑名单 • 多维度采集 • 状态码 • 出错类型 • 响应时间分布 • 响应体大小分布 • 应用 • 设备类型 • 版本 • 多维度查询和分组统计 监控 监控 Inbound Route Outbound • ApiGateway整合来自各方的功能 • 以Filter方式组织 • 分阶段:预处理、路由、后处理 • 插拔式、功能解耦隔离、易维护 BusQuery Error Decode BotBlocker Router FixHeaders GZip SendRes Filter机制 Instances Manager Classes Filter Groovy Source Files Filter Source Files Repository Memory Disk 文件级粒度发布: • 更新磁盘文件 • 发现更新并编译成类 • 实例化,替换内存中的旧实例 更多: • 分环境多版本管理 • 金丝雀机制 • 实时更新,实时回滚 动态部署 Filter管理 Filter发布 • 多层级配置 • 配置运行时可更改 • 所有的资源都是受限的 • 线程池,Socket timeout相关,业务配置 动态配置 配置系统 • 分环境打包 • 打包是耗时操作 • 多套复杂,维护成本高 • 多环境共用一个包 • 提取环境不同点 • 有助于解耦 SourceCode Gateway.prod.tar Gateway.uat.tar Gateway.fat.tar Prod Uat Fat SourceCode Gateway.uat.tar Prod Uat Fat Compile&Package Deploy Deploy&RunAs 多环境共用一个包 • 调用隔离 • 某个服务出问题或过载,不会影响其他服务 • 负载限流 • 超载请求,自动拒绝 • 保护后端服务 隔离、限流 • 线程池机制 • 信号量机制 • 利用动态配置进行细粒度控制 • 某个服务的某个操作的最高并发数 MobileApp HotelQuery 10 HotelOrder FlightQuery FlightOrder BusQuery BusOrder 5 ThreadPool Semophone 隔离、限流实现 • 服务调用,连续出错 • 自动熔断,不再请求,直接返回 • 间隔测试 , 自动恢复 熔断保护 熔断实现 • 实时发现问题 • 定位问题服务 • 查找服务负责人 • 通知负责人处理 轻松运维 核心报警指标: 1. 慢请求数 2. 非200请求数 3. 熔断拒绝请求数 4. 请求数波动 Thanks:) Q&A
还剩22页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

ddreaml

贡献于2016-07-15

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf