版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微服务场景下的性能提升最佳实践技术创新 变革未来问题的来源架构核心要素性能可用性一致性扩展性安全性性能是什么?响应时间(RT)吞吐量(TPS/QPS)资源占用(CPU,内存,网络,磁盘)常见的问题内存泄露导致内存耗尽过载突发流量,大量超时重试网络瓶颈需要加载的内容太多阻塞无尽的等待锁通过限制IO繁忙大量的读写,分布式CPU繁忙计算型常见问题长请求拥塞连接耗尽线程VS进程The problem is shared, mutable data. Source: /display.asp?id=806微服务架构独立性灵活单一职责进程隔离定义:一种架构风格。1.单个服务尽量专注一件事情,高内聚、低耦合
2、;2.进程隔离;3.每个服务可以独立的开发、测试、构建、部署;4.小且灵活;交付周期每个服务可以独立的开发、测试和交付,降低周期;快速沟通小团队开发,降低代码耦合度导致的沟通成本;业务按服务拆分,新人不需要了解整体架构,上手快;定制化可以根据市场需求,灵活多变的组合出新的业务场景;隔离性进程隔离方式,故障范围有效控制;技术栈可以根据需求,按服务选择不同技术栈;演进优化可以按照服务粒度进行演进优化;微服务的挑战架构复杂度由于服务数量暴增引起的各种复杂的架构问题。例如一致性问题、大量远程接口调用的复杂度;管理成本服务数量爆炸导致的管理、运维成本升高。我们希望交付周期短,周期短必然引起变更快,变更是
3、可用性的天敌。需要通过自动化、可视化的手段解决问题;故障定位例如一个涉及几十个服务的请求,如何在故障发生的时候快速定位问题;性能损失原本一次调用可以返回结果,现在需要流经几个或几十个服务才能返回结果,如何提升响应时间的问题;由于拆分导致的吞吐量降低,如何补偿?云化就意味着可以横向扩展。架构如何实现扩展?提升整体的系统吞吐量。性能提升带来的收益用户体验资源消耗Source: /photo/ferraric4/14779.shtml性能提升带来的问题架构复杂度成本人力成本空间换时间资源Source: /photo/ferraric4/14779.shtml第一步,树立目标Source: /inci
4、dent-response-plan-now-stay-prepared/通常你得到的需求是这样:Source: /photo/ferraric4/14779.shtml速度要快!跟以前比,不能降低指标。/content/16/1109/17/31931381_605198853.shtml平均响应时间1s?2, 5, 3, 4, 301, 4, 2, 8, 7, 3, 3, 1, 1, 8, 2 AVG(f)=23.699%请求要在1S内完成?不同的业务,响应时间不应该相同;单纯的设定响应时间毫无意义,要在吞吐量之下进行设定;支持100万并发用户?这并不等于系统吞吐量的设定;系统目前有多大数
5、据量,增长速度是前提;错误率指标再高,有错误也没用。如何树立目标?应该根据具体业务场景设定指标。例如下单操作,响应时间95%10万tps系统数据量:10亿订单表1亿增长速度:1亿/年资源限制:服务器资源其他影响因素同时,其他目标也要同步设定,例如系统整体可用性,一致性等。Source: /usermanual/component_reference.html#Response_Time_Graph先定一个小目标第二步,寻找瓶颈点Source: /incident-response-plan-now-stay-prepared/压力测试生产环境引流,基于场景监控调用链分析,快速定位分析优化测试S
6、ource: http:/zipkin.io/Source: /blog/1921054网络IO操作系统IO内存CPU连接数数据库压力第三步,优化Source: /seo-tags-optimization.html手段异步非阻塞冗余拆分合并压缩简化环节服务化框架并行处理请求聚合高效协议长连接IO线程和业务线程分离压缩注意超时时间和重试带来的后果单品页价格库存商品20ms30ms50ms串行=100ms单品页价格库存商品20ms30ms50ms并行=50msSource: /2015/03/qcon-london-2015-from-hype-trendsetting-Part-1-micro
7、services-docker-performance-outliers.htmlAB消息中间件优势:提升吞吐量降低响应时间扩展性弱依赖问题:一致性时间差例如下单登录加积分下单购物车库存订单支付下单MQ购物车库存订单支付分布式缓存优势:服务无状态,易扩展适当平衡数据库压力极大提升吞吐量降低响应时间问题:一致性复杂度Source:/gomysql/p/4395504.html数据库索引、冗余、批量写入减小锁粒度减小复杂查询适当转移事务处理提升硬件性能读写分离分库垂直分表水平分表根据业务情况选择NoSql性能优化IO问题分布式平台化,抽象复杂度,简化业务开发数据迁移时延聚合查询复杂度Source:
8、/其他优化方式代码重点在review阶段浏览器、客户端缓存cookie、图片、脚本静态化实际静态内容占绝大多数CDN就近访问负载均衡根据压力动态平衡本地缓存有效、慎用JVM参数调整连接池预估、测试、尝试业务角度优化容易被忽略经典案例价格price0price1priceN数据服务平台log经典案例SNSweb写服务MQ个人数据关系数据大数据敏感过滤热点用户缓存集群读服务如果你有1亿粉丝推还是拉?经典案例秒杀关键问题:库存静态化、CDN与正常流程隔离分层校验秒杀页秒杀服务MQ过滤服务etcdetcdetcdredisredisredismanagerclientmanagermanager扩容迁移工具库存服务订单购物车其他关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年秦都职业学院单招职业技能考试题库及参考答案详解【培优】
- 2024年承德应用技术大学专科单招职业技能考试题库及参考答案详解(黄金题型)
- 2025年甘肃省酒泉市高职单招职业技能考试题库及答案详解【名师系列】
- 2024年海南三亚热带职业学院高职单招职业技能考试模拟试卷附答案详解【能力提升】
- 2024年晋阳专修学院高职单招职业适应性测试考试题库及参考答案详解(模拟题)
- 2025年洛阳技师学院高职单招综合素质考试题库(轻巧夺冠)附答案详解
- 2026年湖北武汉东湖职业学院高职单招职业适应性测试考试模拟试卷及答案详解【网校专用】
- 2026年乌梁素海职业学院单招综合素质考试题库及参考答案详解(黄金题型)
- 2025年湖南张家界武陵源职业学院高职单招职业技能考试题库附答案详解【B卷】
- 2024年淄博师专高职单招职业适应性测试考试模拟试卷(考点精练)附答案详解
- 员工通勤交通安全培训课件
- 2024-2025学年广州市三校联考(广大附、铁一、广外)高一(上)期中英语试题及答案
- 旱改水农田管护协议书4篇
- (正式版)DB42∕T 2305-2024 《高品质住宅技术标准》
- 《老年人健康管理实务》老年保健与管理专业全套教学课件
- osahs讲解教学课件
- 特种设备安全风险分级管控与隐患排查治理体系建设指导手册
- DZ/T 0132-1994钻孔压水试验规程
- T/CNCA 038-2022车用甲醇汽油(M15)
- T- CWEA XX -2023 斜式轴流泵安装规程
- 幕墙安全管理制度
评论
0/150
提交评论