写点什么

架构师训练营 week11 作业

用户头像
小高
关注
发布于: 2020 年 08 月 26 日

1、作业1:导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述

导致系统不可用的原因有以下因素:硬件故障,软件bug,系统发布期间(计划性),并发压力,网络攻击,外部灾害等等。

保障系统高可用的方案:

  • 解耦:面向对象设计,领域驱动设计

  • 隔离:业务与子系统隔离,微服务与中台架构,生产者与消费者隔离,虚拟机与容器隔离。

  • 异步:多线程编程,反应式编程,异步通信网络编程,时间驱动异步架构

  • 备份:集群设计,数据库主从复制

  • 失效转移:设计无状态的服务

  • 事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前状态

  • 重试:无法及时返回响应时,调用者可重试。

  • 熔断:当某个服务出现故障,响应延迟或者失败率增v加,继续调用这个服务会导致调用者请求阻塞,资源消耗增加,进而出现服务级联失效,这时可以使用熔断器阻断对故障服务的调用。

  • 限流:对进入系统的用户请求进行流量限制

  • 异地多活:在多个数据中心部署服务,难点是数据一致性。

2、作业2:请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。

import hashlib
def EncryPass(Password){
md5 = hashlib.md5()
md5.update(Password.encode("UTF-8"))
result = md5.hexdigest()
return result
}
def checkPW(ID, Password, PasswordSec){
if EncryPass(Password) == EncryPass(PasswordSec):
return True
else:
return False
}



用户头像

小高

关注

代码,思考,架构,阅读,旅行。 2018.11.02 加入

一起来进步吧,持续学习的小白!

评论

发布
暂无评论
架构师训练营week11作业