week 11 作业
1,导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
导致系统不可用的原因有以下几个方面:
硬件故障
软件BUG
系统发布问题
并发压力导致
网络攻击
外部灾害。
保障系统高可用,可从以下几方面处理:
解耦
高内聚、低耦合的组件设计原则
面向对象基本设计原则
面向对象设计模式
领域驱动设计建模
隔离
业务与子系统隔离
微服务与中台架构
生产者消费者隔离
虚拟机与容器隔离
异步
多线程编程
反应式编程
异步通信网络编程
事件驱动异步架构
备份
集群设计
数据库主从、失效转移
事务补偿
传统事务ACID
分布式事务的BASE
事务回滚
重试
上游调用者超时时间要大于下游调用者超时时间总和
熔断
断路器三种状态:关闭,打开,半开
限流
计数器算法(固定窗口,滑动窗口)
令牌桶算法
漏桶算法
降级
异地多活
2,请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
评论