架构师训练营 -- 第 11 周作业
导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
系统不可用的原因:
硬件故障
软件bug
系统发布
并发压力
网络攻击
外部灾害
保障系统稳定高可用的方案有哪些:
解耦: 高内聚低耦合的系统设计,出问题时更易排查,也能更好的进行隔离防止相互影响和进行横向扩容
隔离:相互隔离,防止互相影响
异步:异步调用,不会阻塞在某个异常的环节
备份:冗余备份,防止单点故障
Failover(失效转移):当某个服务不可服务时,可以转移到可服务的节点
幂等: 执行多次的结果是一样的
事务补偿:最终一致性
重试:偶尔的实败时,进行重试,如网络波动等重试后可恢复
熔断:出现频繁出错时,熔断一段时间,不再发起请求
限流:对超过服务容量的请求进行限制,防止系统因为负载过高而服务异常
降级:当服务压力过大,适当的舍弃掉部分不重要的功能
异地多活:在多个地方机房同时部署服务,当某地机房异常时,可以由另外的机房进行服务
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
评论