手记

【九月打卡】第6天 架构治理(二)

课程名称Java架构师-十项全能

课程章节

性能治理、依赖治理

主讲老师

书生

课程内容

  1. 性能治理:

解决性能问题:

解决流量的问题, 流量很高,或者不均衡。

解决热点问题。

解决数据问题:表设计。

优化日志打印,消耗性能,IO是很大的瓶颈。

面对流量问题:最核心的是缓存建设,是抗住流量最关键的一点;缓存预热;流量整形,削峰填谷;异步化解决同步代码或者同步请求中不着急的业务由异步来完成。

面对热点问题:分散热点数据,不要让所有热点数据都打到某一张表或某一行数据,大家都去修改,大大降低了系统的性能。

面对数据问题:大key,造长短缓存,更新不频繁的用长缓存。更新频繁的做短缓存。表拆分,mysql的表过百万性能就下降了。治理慢SQL。

打印日志:只打关键日志。对于线上问题,通过流量回放重新打印日志来解决。使用日志异步化。


准备工作:(在流量到来之前的准备

热点数据:热点分散

缓存建设:超时管理、长短缓存

缓存预热:建立链路缓存、刷新超时时间

流量约束:(在流量到来时处理

流量整形:令牌桶、流量缓存

流量控制:限流、熔断

 

  1. 依赖治理

依赖带来提效,也带来风险

依赖分直接依赖、间接依赖、循环依赖

依赖保护:熔断保护、兜底方案、依赖安全

依赖治理:临时包问题、依赖升级、依赖冲突、依赖瘦身、私有依赖

在依赖管理中:

用正式包替换临时包,即SNAPSHOT治理

对于问题版本、漏洞版本,进行问题依赖版本升级

对能力升级、历史清退,进行依赖升级功能改造

对间接依赖、循环依赖,进行依赖冲突管理

对向下兼容和稳定保证,是作为依赖的基本要求

依赖瘦身:

使用命令去除未使用依赖和重复依赖

maven helper插件, 帮助分析依赖树

maven dependency:tree 定位冲突依赖, 进行一一排除

 

0人推荐
随时随地看视频
慕课网APP