高并发 高可用 高性能 解决方案
2021-03-01 00:08:40 0 举报
AI智能生成
微服务-高并发 高可用 高性能 解决方案
作者其他创作
大纲/内容
总体架构
部署
两地三中心
异地多活
CDN
DNS
网关
流量网关
API网关
rpc与http互转
认证、鉴权
JWT
对象存储
分布式文件存储
缓存
本地缓存
分布式缓存
消息中间件
异步调用体系
响应式http调用
基于Mono,Flux实现
基于up JDK8 & Servlet3.0 或 Netty
应用端感受无区别,但还阻塞IO,性能大幅提升
分布式任务调度
elastic-job
基于quartz二次开发
xxl-job
容错中间件
可恢复性
微服务拆分
分布式水平扩展
数据库集群
分库分表
架构原则
服务提供方三原则
不主动 不拒绝 不负责
含义:提供方无策略,所有容错策略由调用方负责
缓存前置
认证&鉴权前置
waf 软防火墙前置
线程资源隔离
hytrix
熔断 降级 资源隔离
A->B A->C的情况下,确保每个调用链都可以分配到线程资源
细节优化
负载均衡算法选型
网络优化
链路优化
JVM调优
参数调优
代码优化
算法优化
集合类操作相关
isEmpty(O(0) , size(O(n)))
HashMap和ArrayList的选型
线程安全滥用问题
StringBuffer不可滥用
代码中尽量减少锁的大小
多线程
慎用线程池,自行创建线程需全面考虑性能
进入同步代码块前后尽量用双检
调用链优化
高并发的长调用链从业务层面分析,是否需要改为消息方式
其他
不记录没有必要的日志
web服务器优化
数据库优化
服务器性能剖析
参数调优
SQL优化
update、delete where条件使用索引,否则会锁表
去掉多表关联,group by
索引优化
使用顺序自增int作为ID
充分利用覆盖索引
去掉多余的不合理的索引
优化联合索引
最常用的,或区分度最高的字段作为索引首字段
网关层
多台业务网关
单台流量网关(或多台)
0 条评论
下一页