java系统稳定性

稳定性保障

运行, 运维提供持续的, 可靠的服务能力.

必须考虑不稳定性的因素有哪些

极端情况和突发事件                                   解决办法

机房级故障                     多地部署硬件系统,监测本地机房系统各硬件性能         

城市级故障                     多地部署硬件系统

线上故障                         日志,回滚,快速定位解决

线上业务量瞬时爆发       增加硬件资源,引入消息中间件削峰限流,熔断。 

持续快速增长                  缓存,优化架构设计,主从复制,分库分表

系统服务器故障              集群部署,负载均衡,备用节点

依赖数据库故障              缓存,主从复制,分库分表,多种数据库使用,数据回滚

环境数据改变                  常量设置,配置文件设置,

依赖系统故障等              熔断,异常,事务,微服务,分布式,解耦

稳定性系统设计

职责清晰,单一的系统,微服务

不能为了技术而技术   技术栈的加深,维护节点的增加,成本的增加,时间的增加。

技术成熟,标准化,例如成熟的框架,中间件

充分的验证

广泛的用户基础

有足够有经验的开发人员

完善的文档和技术支持

标准化交互协议标准化,数据模型标准化,通用性,移植性

提升效率,避免重复造轮子

降低技术学习曲线,解放人员劳动力

文档清晰,对接效率高

风险分析

根据职责定位问题出现点

对外提供什么服务

那些业务依赖本系统

系统的上游有那些

依赖的下游有那些,依赖的程度如何

系统的部署结构是什么样的

依赖什么数据,从哪里获取

依赖那些资源,资源使用模型时怎么样的

日常常见的维护操作是什么,都有谁参与

风险预防

简单来说就是质量+容量+灰度+回滚。整体和完善的测试流程。

需求分析

系统分析,设计文档产出,评审

开发自测,交付测试,联调

持续集成覆盖

代码CR

整体交付报告review

性能属性和硬件资源

基础资源监控

网络

存储

服务器硬件

系统资源

通用中间件

DNS

流量调配

业务量

耗时

成功率

依赖调用量

依赖调用成功率

依赖调用耗时

应用基础资源监控

服务器数量,分布

服务器内存

服务器CPU使用

GC情况

线程池使用情况

DB调用量

DB调用耗时

IO

磁盘占用

链路监控

业务整体成功率

业务链路处理整体耗时

报错量监控

问题节点监控

Code Review

谈谈系统稳定性设计 - Java填坑之路 - CSDN博客'

如何快速处理线上故障 - 倒骑的驴 - 博客园

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。