汽车之家微服务架构实践.pdf

汽车之家微服务架构实践 石智中@汽车之家 2016-4-23 微服务架构 (MSA ) 什么是MSA 微服务架构 (MSA )是一种架构概念 ,旨在通过将功能分解到各 个离散的服务中以实现对解决方案的解耦。 MSA能带给我们什么 • 分解 • 自由 • 效率 • 易迭代 • 弹性 MSA不足 • 复杂度 • 大小限制 • 进程间通信 • 事务 • 测试 • 服务治理 • 可靠性 ? 汽车之家怎样落地MSA 微服务框架Turbo 之家情况 15年6月ADU980万 全网千亿调用 15年双11汽车电商交易额87.95亿 服务化之前 • C# • 设计、架构老旧 • 各 自为政 • 无标准 • Http+Json • 服务配套 ? 要实现的东东 1 集中式负载均衡 2 服务发现 3 无感知的降级和分流 4 统一实时的监控报警 5 提升进程间通信 6 分布式跟踪 7 持续集成 8 自动化弹性部署 Turbo 一套多语言适配的微服务化解决方案 ,提供服务发现、多协议RPC、 负载均衡、分布式跟踪、统一监控报警、自动化部署等功能。 Turbo框架简示图 服务治理-分层架构 服务发现 多语言支持的代价 架构上的去中心化 使得每种语言都要 依据分层架构做 自己的实现 发现和负载的AB方案 RPC协议头 稳定性和容错 • 多机房部署zookeeper集群 ,主力机房5个节点(leader/follower集群) , 其他机房各2个节点(observer节点) ,保证性能和稳定性。 • Turbo客户端服务端添加守护线程 ,定时校验本地缓存和zookeeper的 数据一致性。 • Turbo客户端会将缓存的服务信息持久话到本地 ,即使zookeeper挂掉 或者重启也不影响正常调用。 • 注册中心zookeeper的数据全部持久化到DB中。 • 嵌入Trace客户端上报收集分布式跟踪 日志 服务监控-架构 服务监控-日志分析 服务监控-Trace数据模型 服务监控-Trace数据模型 • TraceId标识唯一调用树 • TransactionId标识唯一次调用 • 一次trace调用会产生四条 日志 • Trace调用树可以由Turbo、本地调用、http或其他调用方式组成 • Trace客户端是独立的 ,Tur

文档评论(0)

1亿VIP精品文档

相关文档