十一周作业
导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
导致系统不可用的原因有: 硬件故障、软件bug、系统发布、并发压力、网络攻击、外部灾害
解耦: 高内聚、低耦合的组件设计原则,面向对象基本设计原则、面向对象设计模式、领域驱动设计建模
隔离:业务与子系统隔离、微服务与中台架构、生产者消费者隔离、虚拟机与容器隔离
异步: 多线程编程、反应式编程、异步通信网络编程、事件驱动异步架构
备份:集群设计、数据库复制( CAP原理)
Failover(失效转移):数据库主主失效转移、负载均衡失效转移、设计无状态的服务
幂等、事务补偿、重试、熔断、限流、降级、异地多活
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
public static checkPW(String userId, String password, String encryPassword){
StringBuilder builder = new StringBuilder();
builder.append(userId) ;
builder.append(password) ;
MessageDigest messageDigest = MessageDigest.getInstance("SHA") ;
messageDigest.update( builder.toString().getBytes()) ;
BigInteger sha = new BigInteger(messageDigest.digest()) ;
if (sha.toString().equals(encryPassword)){
return true;
}else{
return false ;
}
}
评论