Bootstrap

第11周作业

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

不可用原因

  • 硬件

  • 机器/网络故障

  • 软件

  • bug

  • 配置/操作错误

  • 环境

  • 请求太多

保障可用性

  • 硬件

  • 冗余

  • 软件

  • 自动测试

  • 监控告警

  • 熔断

  • 限频

  • 转移

  • 环境

  • 提供降级能力

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

func checkPW(userId, rawPass, expectEncryptPass string) bool {
	encryptPassWithSalt := append(md5.Sum([]byte(rawPass))[:], []byte(userId)...)
	return expectEncryptPass == fmt.Sprint("%x", md5.Sum(encryptPassWithSalt))
}