面向系统的高可用架构
面向业务的高可用架构
面向系统的高可用时的思路如下:
单机—–》双机—-》集群
单机房—-》异地多机房
高可用指标:5个9,4个9
定位问题,恢复业务
面向业务的高可用如下:
用户层—》网络层—-》服务层—运维层
网络层:客户端重试 http + DNS
服务层:核心和非核心模块分离、依赖降级、
代码层面隔离,物理层面隔离:网络隔离、数据库隔离、缓存隔离、服务器隔离等。
异地多活:跨城多机房、同城多机房
异地多活的数据一致性问题对策:
异步分发(最终一致性)、二次读取(实时一致性)、重复生成数据(可重复生成的数据,比如session,tickit等)
定位问题:上报日志、自动化分析日志、可视化监控;
上报日志:jmonitor、falcon等
redis、tair缓存日志
elasitcsearch存储和分析日志
可视化监控:zabbix,falcon等
立体化数据上报和监控如下:
业务层:访问量pv,uv,成功率等;
应用服务层:url监控,url请求量,错误码分布,http响应时间
接口调用层:时延、错误码、次数,qps等
基础组件层:容器、数据库、缓存,消息队列等监控指标
比如:mysql连接数,请求数,查询行数,更新行数,而缓存memcached的是使用率、踢出率、命中率等
基础设施层:操作系统状态,CPU状态,内存状态,网卡流量,连接数等等。