架构师训练营 week11 作业
1、作业1:导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述
导致系统不可用的原因有以下因素:硬件故障,软件bug,系统发布期间(计划性),并发压力,网络攻击,外部灾害等等。
保障系统高可用的方案:
解耦:面向对象设计,领域驱动设计
隔离:业务与子系统隔离,微服务与中台架构,生产者与消费者隔离,虚拟机与容器隔离。
异步:多线程编程,反应式编程,异步通信网络编程,时间驱动异步架构
备份:集群设计,数据库主从复制
失效转移:设计无状态的服务
事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前状态
重试:无法及时返回响应时,调用者可重试。
熔断:当某个服务出现故障,响应延迟或者失败率增v加,继续调用这个服务会导致调用者请求阻塞,资源消耗增加,进而出现服务级联失效,这时可以使用熔断器阻断对故障服务的调用。
限流:对进入系统的用户请求进行流量限制
异地多活:在多个数据中心部署服务,难点是数据一致性。
2、作业2:请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
评论