第十一周作业
导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
系统不可用原因:
硬件故障:内存、硬盘故障
软件BUG:程序问题导致系统资源耗尽、OOM
系统发布:发布流程不正确,数据库DDL未执行,代码却先上线了
并发压力:大量的并发耗尽了系统资源
网络攻击:网络攻击导致数据库表被删除
外部灾害:电缆被挖断、机房着火
高可用架构方案:
解耦:系统的各个组件、模块之间进行解耦,这样就能用各种方式来降低故障在组件之间的传播
隔离:各个组件、模块的资源进行隔离,防止灾害蔓延
异步:削峰填谷
备份:一份数据出了问题还有备份的数据可以使用
失效转移:一台服务出了问题,需要将请求路由到其他服务
幂等:防止重复提交引起问题
事务补偿:保证一致性
重试:重试时间要设置合理
熔断:当系统出问题时,快速返回默认数据,防止故障蔓延
限流:防止突然的高并发引起问题
降级:放弃部分不重要的功能,将资源集中到重要的功能上
异地多活:防止区域性停电风险等
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文),返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
评论