写点什么

架构师训练营第十一周作业

用户头像
张明森
关注
发布于: 2020 年 08 月 25 日
  • 导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。

导致系统不可用的原因:

网络攻击

硬件故障

软件BUG

系统发布

并发压力

外部灾害

保障系统稳定高可用的方案:

解耦:设计原则、模式;建模

隔离:系统间隔离

异步:多线程、反应式、异步通信、事件驱动

备份:集群、数据库复制

失效转移:

幂等

事务补偿:ACID、BASE;代码逻辑逆操作

重试

熔断

限流:计数器、令牌桶、漏桶

自适应限流

降级

异地多活



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

Boolean checkPW(String userId,String pwd,String encryptPwd){
if(StringUtils.isEmpty(userId)||
StringUtils.isEmpty(pwd)||
StringUtils.isEmpty(encryptPwd)){
return false;
}
String md5EncryptPwd=md5(pwd,userId);
return md5EncryptPwd.equals(encryptPwd);
}
public String md5(String text, String key) {
String saltPrefix="_20200825_";
//加密后的字符串
String encodeStr= DigestUtils.md5Hex(text + saltPrefix + key);
//System.out.println("MD5加密后的字符串为:encodeStr="+encodeStr);
return encodeStr;
}



用户头像

张明森

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第十一周作业