上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2019年网易大规模微服务单元化与高可用设计.pdf

编号:96996 PDF 40页 3.83MB 下载积分:VIP专享
下载报告请您先登录!

2019年网易大规模微服务单元化与高可用设计.pdf

1、中国软件技术大会CHINA SOFTWARE TECHNOLOGY CONFERENCE网易大规模微服务单元化与高可用设计大规模分布式系统面临的问题高可用数据一致性突发流量故障诊断及快速恢复面临的问题高可用保障多机房与单元化大规模系统高可用战略设计高可用架构设计增加系统冗余,避免单点机房网络出入口要有主备线路多机房单元化部署,组件集群化部署,实现城市级机房故障迁移能力研发实现良好的无状态化处理,幂等服务接口设计根据服务重要度实现熔断降级、限流保护策略每个服务都要设计有效探活接口,以便健康检查感知到服务状态通过制定良好的代码检查规范和静态扫描工具,最大化限制因为代码问题造成的系统不可用DBA数据

2、库数据量的持续监控数据库性能的持续监控系统上线前的SQL审核故障演练和性能压测定期进行问题汇总及复盘定期组织故障演练,及系统的全链路线上压测。从整体上防范于未然运维系统灰度、蓝绿发布,降低系统上线发布风险完善监控及应对机制,对系统各节点、应用、组件全面地监控,能够第一时间快速发现并解决问题持续关注线上系统网络使用、服务器性能、硬件存储、中间件、数据库灯指标第一,研发每一个微服务都有实现良好的无状态化处理,幂等服务接口设计。根据服务重要度实现熔断降级、限流保护策略每个服务都要设计有效探活接口,以便健康检查感知到服务状态通过制定良好的代码检查规范和静态扫描工具,最大化限制因为代码问题造成的系统不可

3、用第二,高可用架构设计第三,运维第三,运维第四,DBA索引设计容量过载服务安全索引未覆盖索引效率不高Innodb表无主键冗余索引存储空间满内存不够,物理读过多网络带宽撑满高并发低逻辑读造成的CPU 瓶颈弱密码超权限访问公网IP直接暴露公网SQL 注入第四,DBA软硬件参数优化运行状态用戶访问CPU节电IO调度策略Raid10,WBNUMASwapnessXFSDB buffer cacheDB redo size.活跃连接数可用连接数逻辑读物理读Redo binlog 产生量QPSTPS复制状态复制延迟慢SQL高消耗SQL热表分布式SQL 第五,故障演练和性能压测测试资源管理场景管理任务管理版

4、本管理性能测试平台机器管理成员管理测试脚本和数据管理脚本上传脚本下发测试执行和报告管理单接口压测脚本编写测试数据业务场景压测实时报告分析资源监控风险分析历史报告采用梯度压力,看服务的性能变化情况,评估出服务的最大容量值。容量测试在达到停止条件之后,继续增加压力,检验服务集群在失效状态下的表现。摸高压测在峰值压力下,保持30分钟(可讨论)稳定峰值稳定性测试针对秒杀类业务,制定秒杀测试场景秒杀场景测试多级限流,保护系统稳定提供服务限流演练非核心业务降级,提升整体服务能力降级演练高可用部署架构选型架构类型可用性优势问题单体应用-网络开销小扩展性差,维护困难单机房服务化应用级高可用网络开销小,解耦可扩

5、展容量受限,机房级单点同城多活阶段一机房级高可用突破单机房容量瓶颈非必要的跨机房开销大同城多活阶段二机房级高可用非必要的跨机房网络开销小,提供机房级容灾城市级单点,仍存在非必要的跨机房开销异地多活单元化城市级高可用异地容灾,可用性高成本较高,要求各应用组件实现单元化大规模系统高可用战术设计背景集群水平伸缩能力受限机房容灾需求数据中心规模限制成本需求需要具备跨地域异地能力应用层异地多活单元保证城市级高可用每个多活单元采用双机房保证机房级高可用每个机房中采用多副本保证实例级高可用缓存层缓存采用多集群单元化复制缓存件每个集群单元中采用多副本主从复制数据库层数据库采用主从复制或MGR数据库每个集群单元

6、中采用DDB分库分表轻舟平台层平台组件异地多活单元保证了城市级高可用平台组件每个多活单元采用双机房保证机房级高可用平台组件每个机房中采用多副本保证实例级高可用同城多活大规模系统故障恢复方案故障层级预计影响范围预计SLA影响恢复手段应用单实例故障(进程异常退出,FGC等)单个或部分用户请求失败。应用有多副本自动重试即可正常无影响K8S通过健康检测到异常,自动重启容器应用单节点故障(主机硬件异常,掉电等)部分用户请求失败。应用有多副本自动重试即可正常1分钟K8S检测到节点异常会自动迁移该节点上的容器中间件单节点故障(Zookeeper、Eureka)ZK故障为从节点无影响;ZK故障为主节点,在重选

7、举时无法注册发现;Eureka单节点故障无影响;无影响自动剔除故障节点,故障节点需手工恢复缓存单节点故障(Redis)Redis集群模式单节点故障无影响;无影响自动剔除故障节点,故障节点需手工恢复数据库单节点故障(DDB、RDS)DDN从节点故障无影响;DDN主节点故障会影响部分用户请求超时;1分钟DDB自动主备切换,故障节点需手工恢复机房故障(机房断电,网络分区等)部分用户请求失败15分钟通过监控检查,切换流量入口至同城机房;目标:SLA服务性能和可靠性要求需达到4个9(99.99%),全年停机总计不能超过1小时SLA 4个9(99.99%)全年服务不可用时间不超过 53分钟高可用保障 应用

8、层 可用性高,能提供城市级容灾能力 要求不存在非单元化应用和接口 要求实现中间件层和数据库层单元化单元化特点高可用保障 接入层单元化路由规则实现UID:XXXX01cookie:01XXXXXX单元1(0020)单元2(21-40)中心(41-99)高可用保障 中间件层设计方案机房内的ZooKeeper高可用保障通过多ZooKeeper实例部署来达成。场景一、ZooKeeper 单元化主从多活需考虑问题集群信息定义维护单元机房节点信息过滤高可用保障 中间件层设计方案每个机房部署一套ZooKeeper集群,集群之间进行数据同步。各机房应用连接机房内的ZooKeeper集群,注册的信息通过数据同步

9、,能够被其他机房应用获取到。单一机房ZooKeeper集群不可用,其余机房不受影响。当前不考虑做不同机房之间的集群切换。场景二、ZooKeeper 单元化多集群复制高可用保障 数据库层设计方案单元内采用同城主从复制模式跨单元采用DTS(NDC)实现应用层数据双向同步能力场景一、DDB集群多机房同步复制高可用保障 数据库层两个实现途径:ID分配依然采用中心式,所有机房的单元全部向同一中心服务申请ID每个单元各自分配,通过特定规则保证每个机房得到的最终ID不冲突场景二、全局唯一ID分配高可用保障 缓存层设计方案新增Redis集群作为热备份集群主集群与备份集群之间在服务端进行数据同步,通过Redis

10、 Replication协议进行同步处理离线监听主集群状态,探测到故障则进行主备之间切换,信息通过配置中心下达客户端,类哨兵方式进行监听探活场景一、集群热备需考虑问题集群之间数据在服务端进行同步,正常情况下,集群之间数据会一致。但会存在一定的复制时延。在故障切换时,可能存在极短时间内的数据丢失。高可用保障 缓存层设计方案新增集群作为多活集群,正常情况下客户端根据Key哈希策略选择分发到不同集群客户端通过Proxy连接集群中每一个节点,Proxy的用处是区分客户端写入与集群复制写入集群之间在服务端进行数据双向复制,数据变更通过Redis Replication协议获取离线监听主集群状态,探测到故

11、障则进行切换,信息通过配置中心下达客户端,类哨兵方式进行监听探活场景二、集群多活需考虑问题此方案应用于单纯的集群间高可用时,同一个Key在同一段时间内只会路由到同一个集群,数据一致性可以保证。在故障切换情况下,可能存在极端时间内的数据丢失。应用/运维/业务/发布 全栈管理API网关负载均衡NSF服务治理APM性能管理Kubernetes集群API网关Kubernetes集群NSF服务治理APM性能管理ABBCABCAC跨集群流量分发统一管理当一个集群实例全挂时,实现跨集群调用的流量染色跨集群服务统一管理与治理多Kubernetes统一管理统一发布平台应用层统一视图总-分-总模型第一个总:统一发

12、布平台对接统一的多K8s管理平台,有统一的灰度发布策略。第二个分,在一个数据中心或者跨数据中心可部署多套Kubernetes,不建议一个K8S跨多个机房,但要保持网络连通性。第三个总,应用虽部署在多个Kubernetes中,但应使用统一服务治理中心,形成统一的视图,可通过染色识别当前的kubernetes即可优势:应用层和容器层界限明确且统一管理,并统一适配租户和环境,有利于控制升级风险当K8S处于稳态的时候,通过统一发布平台在多个集群实现应用层的灰度发布当K8S需要升级的时候(社区三个月一个版本,无法跨版本升级),统一应用视图可以在一个集群因升级导致所有副本全挂的情况下,将流量切到另一个集群

13、数据不一致?分布式事务分布式事务数据一致性问题在分布式系统下保证业务操作的一致性根据业务场景(支付、派单等)选择事务模式幂等重试异常补偿两阶段提交TCC事务托管分布式事务 GTXS分布式事务技术特点:高性能,事务协调器单节点1200+TPS事务协调器支持弹性水平扩展低接入成本,FMT模式接入效率提升80%支持spring cloud、dubbo、gRPC等常用框架事 务 状 态 监 控&报 警跨 服 务 事 务异 常 事 务 处 理跨 数 据 源 事 务无 侵 入 托 管 框 架事 务 消 息混 合 事 务多 框 架 支 持分布式事务功能特点:支持业务无侵入的FMT(框架托管事务)模式,极大降

14、业务接入成本全面支持TCC、补偿模式、事务消息等多种事务模式支持TCC+FMT +事务消息混合事务能力事务消息支持多种消息中间件原生支持RocketMQ、RabbitMQ、Kafka支持插件化接入 支持查看事务调用的轨迹图 支持对于异常事务进行回查、自动重试、手动重试等运维操作 支持快速查看包含异常分支的事务列表 支持事务异常状态监控和报警应对突发流量熔断保护与弹性扩容虚拟机Linux OS业务代码运行环境:应用容器、程序库、系统库、目录结构、文件权限、端口10台平时虚拟机Linux OS虚拟机Linux OS90台需要迅速扩容如何应对突发流量当遇到遭遇流量高峰时传统运维效率低Manual o

15、perationansibleshellpuppetmanual operationclientclient人力成本需要配置大量运维人员,每个运维组需要零散管理多个不同的应用,每个应用需求的端口配置,运行环境不一致。时间成本一个应用运行在的宿主机挂了,需要手工在另一台宿主机上恢复,费时费力。人为风险人工运维可复制性差,每次需要人工干预操作,低级操作错误,配置错误频繁发生。线上问题还需要开发介入。引入容器云实现自动化用户端只需要清楚服务入口地址(Ingress),就可以使用服务。而不需要关心服务器部署的细节。副本控制器(ReplicaController)与调度器(Scheduler)自动进行底

16、层资源调度。底层主机与容器环境解耦,容器可以运行在任意一台宿主机上。扩容简单,把主机加入到资源池即可。统一容器平台建设物理机(Oracle)物理机物理机虚拟化(Vmware)物理网络物理机物理机KVM虚拟网络SDN全链路监控平台发布平台服务治理平台服务注册中心API网关基于虚拟机PaaS中间件基于虚拟机镜像的运行环境分布式数据库分布式缓存消息队列共享服务层业务服务层配置中心日志中心基于虚拟机镜像的弹性伸缩测试平台物理机物理机Vmware虚拟机KVM虚拟机KVM虚拟机云平台 OpenStackOpenStack Ironic物理机发放容器平台 Kubernetes基于容器的PaaS中间件基于容器

17、镜像的运行环境公有云基于容镜像的弹性伸缩全链路压测分布式事务故障注入基于Git的容器编排,不可改变基础设施服务网格 Service Mesh服务熔断保护 熔断限流通过熔断限流机制,当一个服务挂了,被影响的服务能够及时熔断,使用Fallback 数据保证流程在非关键服务不可用的情况下,仍然可以进行。线程池保护通过线程池和消息队列机制实现异步化,允许服务快速失败,当一个服务因为过慢而阻塞,被影响服务可以在超时后快速失败,不会影响整个调用链路。服务治理模块解决了哪些问题?业务代码,框架代码解耦开发和运维;避免重复造轮子;完善方法级别治理粒度;服务治理策略实时生效;在某个微服务实例出错时,能够错误容忍

18、,迅速重试服务容错故障诊断与快速恢复APM应用性能管理服务拓扑APM为应用性能管理服务,通过分布式调用链追踪,用户可以了解调用链路所经的服务、调用时长、发生错误的节点、以及问题现场抛出的异常信息和日志信息。快速获取定位问题所需的信息。服务拓扑异常检测APM应用性能管理APM为应用性能管理服务,通过分布式调用链追踪,用户可以了解调用链路所经的服务、调用时长、发生错误的节点、以及问题现场抛出的异常信息和日志信息。快速获取定位问题所需的信息。通过通过TraceTrace请求快照定位通过通过MetricsMetrics定位错误指标定位错误指标通过订单号查询相关日志通过订单号查询相关日志快速恢复Dock

19、er服务ADocker服务BDocker服务CDocker服务DDocker服务ADocker服务BDocker服务CDocker服务DDocker服务BDocker服务C出现节点故障时,容器可以自动发现故障,并迁移至正常节点恢复运作完整的跨云通用PaaS平台NCE(容器平台)容器管理网络 Calico,OVS存储 Ceph滚动更新弹性伸缩日志中心基础设施监控API网关(流量接入层)路由路由插件分流流量镜像维护开关API监控认证鉴权治理文档报表NSF(微服务框架)服务目录注册发现限流熔断降级容错路由负载均衡参数分流拓扑依赖配置中心服务监控服务告警认证鉴权统计概览知识库APM(应用性能监控)运行时拓扑性能监控服务筛选调用链调用栈JVM监控数据库监控性能告警自定义数据服务告警监控大屏账户审计CICD(开发流程管理)流水线管理GTXS(分布式事务)TCC事务补偿事务消息事务协调统一接入低侵入数据库事务中间件事务多框架支持PAAS中间件MySQLREDISRabbitMQKafkaElasticsearchPostgreSQL持续发布/持续集成滚动发布代码检出镜像构建业务监控业务实时大盘多维分析业务日志访问日志应用日志物理服务器高可用多集群管理全开放的企业级微服务架构业务面访问日志业务日志应用日志kafka明细/预聚合实时计算业务监控大盘ElasticSearch

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2019年网易大规模微服务单元化与高可用设计.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部