高并发 高可用 高性能 解决方案
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调优
参数调优
代码优化
算法优化
集合类操作相关
HashMap和ArrayList的选型
线程安全滥用问题
StringBuffer不可滥用
代码中尽量减少锁的大小
多线程
慎用线程池,自行创建线程需全面考虑性能
进入同步代码块前后尽量用双检
调用链优化
高并发的长调用链从业务层面分析,是否需要改为消息方式
其他
不记录没有必要的日志
web服务器优化
数据库优化
服务器性能剖析
SQL优化
update、delete where条件使用索引,否则会锁表
去掉多表关联,group by
索引优化
使用顺序自增int作为ID
充分利用覆盖索引
去掉多余的不合理的索引
优化联合索引
最常用的,或区分度最高的字段作为索引首字段
网关层
多台业务网关
单台流量网关(或多台)
0 条评论
回复 删除
下一页