58 微服务架构在转转中的实践 sunxuan

2020-03-01 252浏览

  • 1.微服务架构 在二手交易平台(转转)中的实践 孙玄 58集团技术专场
  • 2.关于我 关于我  58集团技术委员会主席  58集团高级系统架构师  转转架构算法部负责人  百度高级工程师  毕业于浙江大学  代表公司多次对外分享 58集团技术专场
  • 3.分享要点 1 特点 使用原因 2 微服务架构 5 6 3 演进 4 通信协议、服务注册/发现 柔性可用实践 服务治理 58集团技术专场
  • 4.特点  什么是微服务架构 1 58集团技术专场
  • 5.特点 微服务架构 微服务粒度 独立进程 围绕业务建模 轻量级通信 去中心化管理 1 58集团技术专场
  • 6.使用原因-转转是什么 卖 买 2 58集团技术专场
  • 7.使用原因-二手交易平台功能  发布商品  分类搜索  关键词搜索  推荐商品  消息中心 -私信、留言  个人中心等等 2 58集团技术专场
  • 8.使用原因 业务功能多 业务复杂性高 用户体验好 业务高速发展 2 58集团技术专场
  • 9.使用原因 微服务架构特点&二手交易平台特点 系统 高扩展性 Please add a 持续交付 Please add a comment here. comment here. 系统 高可用 2 快速迭代 Please add a comment here. 转转使用微服务架构比较合适 58集团技术专场
  • 10.微服务架构 APP APP MicroService Gateway MicroService Gateway Please add a comment here. Please add a comment here. MicroService1 MicroService2 DB1 DB2 MicroService3 Please add a comment here. 持交付 Micro Service Registry DB3 2 58集团技术专场
  • 11.演进-如何设计 整体设计 每层设计 高可用  水平分层  微服务-业务单元垂直拆分  冗余  垂直业务拆分  无状态化  自动恢复  独立进程、部署、运维 58集团技术专场
  • 12.演进-总体架构设计  微服务网关  微服务聚合层  微服务原子层  微服务数据层  轻量级通信 -HTTP -RPC  去中心化管理 -开发语言-java  微服务注册  微服务发现 3 58集团技术专场
  • 13.演进-存在问题 二手交易特点 仅一个 Process  业务发展快  业务越来越复杂 微服务聚合层  研发人员增多 多人 扩展性 开发 差 冲突  开发瓶颈集中 -微服务聚合层 性能 瓶颈 业务 耦合 性高 3 58集团技术专场
  • 14.演进 单微服务聚合层 业务逻辑拆分 多微服务聚合层 业务物理拆分 转转业务领域模型拆分 3 58集团技术专场
  • 15.演进 58集团技术专场
  • 16.演进-多微服务聚合层优点  进程 独立  开发  部署  运维 高效  快速迭代  持续交付 3 58集团技术专场
  • 17.通信协议-轻量级通信协议 REST HAL  HTTP  REST RPC 消息 队列  Thrift  gRpc  dubbo 4 58集团技术专场
  • 18.通信协议选择-我们的选择 市场风险分析 REST API  HTTPS  JSON 转转 微服务网关 cmd:zz.com/zz/userquery method:GET request:{“uid”: 9664058} response:{”respCode”: 0,respData:{“nickname”: musciml}} RPC 转转  SCF 微服务聚合  私有协议 层、原子层 58集团技术专场
  • 19.服务注册/发现 • • 微服务注册中心  Host  Port  Config等 微服务发现  下游发现  负载均衡 4 58集团技术专场
  • 20.服务注册/发现-微服务发现 REQ 下游发现 负载均衡 微服务网关  Keepalive  Retry 微服务1 微服务2 4 58集团技术专场
  • 21.柔性可用实践-为什么需要 流量高峰期 短时请求量大 服务能力有限 性能下降 怎么办 5 系统雪崩 服务宕机 微服务柔性可用 58集团技术专场
  • 22.柔性可用实践-柔性设计如何做 目标:保证核心服务可用;非核心服务弱可用,甚至不可用 系统 降级 5 数据层 降级 柔性可用 策略 58集团技术专场
  • 23.柔性可用实践-系统降级 拒绝部分请求 关闭部分服务(业务紧密) 5 58集团技术专场
  • 24.柔性可用实践-系统降级 1 拒绝部分老请求  减轻微服务请求处理数量  确保“新”请求正常响应  RPC队列方式(请求入队、出队时间处理请求时,检查 拒绝 部分请求 请求在队列请求时间超过一定时间[比如1s],直接丢弃) 2 优先级请求方式  非核心请求直接丢弃 (1)业务紧密 (2)转转 3 随机拒绝方式  随机丢弃一定比例请求 5  网站一会可用,一会不可用 58集团技术专场
  • 25.柔性可用实践-数据层降级 更新请求 01  持久到消息队列  只更新缓存 02 读请求  读缓存 03 数据补齐  消息队列->数据库 5 58集团技术专场
  • 26.柔性可用实践-柔性可用策略 5 自动 打开 不依赖于人肉 演练 保证线上生效 58集团技术专场
  • 27.服务治理 进程状态 为什么需要监控 监控什么 6 及时发现问题 主动权 58集团技术专场
  • 28.服务治理-监控手段 监控手段 1 ALive 语义监控 数据波动监控 6 机器资源不足 工作正常 2 正常工作 进程监控 、 3 错误日志监控 流量的突增突降 4 5 数据资源监控 58集团技术专场
  • 29.服务治理 微服务实时监控 请求平均耗时 6 请求异常条数 58集团技术专场
  • 30.服务治理-微服务监控框架 Open-falcon 定制开发 6 58集团技术专场
  • 31.要点回顾 1 特点 使用原因 2 微服务架构 5 6 3 演进 4 通信协议、服务注册/发现 柔性可用实践 服务治理 58集团技术专场
  • 32.欢迎关注本人公众号“架构之美” 后台开发、搜索、推荐算法职位 sunxuan@58.com 58集团技术专场
  • 33.58集团技术专场