写点什么

Week11

用户头像
丿淡忘
关注
发布于: 2020 年 08 月 26 日

导致系统不可用的原因有哪些

不可用的原因

1.非计划性宕机:非计划性宕机主要包括主机宕机、数据故障宕机、存储故障、人为错误、数据损坏、站点故障等。

2.主机故障宕机:当主机系统或数据库服务器出现意外故障并导致服务中断时,主机系统就会发生故障。

3.数据故障宕机:数据故障是指丢失、损坏或破坏关键企业数据。数据故障的原因比计算机故障更加错综复杂,可能由于存储硬件、人为错误、损坏或站点故障引起。

4.存储故障:单一存储配置,目前都是采用磁盘RAID技术加热备磁盘来解决,因此存储系统的故障主要是由机房电力故障或人为因素导致存储设备的电源发生故障。

5.人为错误:人为错误包括:误删除重要数据或升级语句中不正确的“WHERE”子句更新了比预定更多的行。

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

监控系统:监控能够量化系统的运行情况,是问题发现和系统优化的基础,没有监控就不能知道系统发生了什么问题,不能知道系统运行指标也就是无法做出针对性的优化。完善的监控需要将系统,应用,数据库,缓存,核心组件,第三方依赖纳入进来,做到面面俱到,并且能够第一时间就看到系统的核心指标,还需要对重要的应用指标,业务指标,投诉指标都设置好报警规则。分布式追踪系统也是发现问题的重要手段,需要核心功能链路上的服务都进行接入。

压测:如果说监控系统是系统的体检报告,那么压测就是体能测试。监控系统可以看到过去和当前的指标,压测则是对未来的预测。一般来说压测分为单机压测和系统的压测,单机压测比较合适压测某个特定的场景和项目,好处是压测实施简单,可以压测出一个系统极限值,缺点是和系统的真实运行情况有一定差距。系统间压测的最好形式就是全链路压测,全链路压测更接近系统的真实运行情况,可以找出应用,存储,缓存,依赖服务,网络情况的瓶颈。



用户密码验证函数

Boolean checkPW(String userId,String password,String encryptedPassword)
{
if (userId == "" || password == "" || encryptedPassword == "") {
return false;
}
// 1.先用MD5分别加密userId和password
string md5UserId = md5Encrypt(userId);
string md5Password = md5Encrypt(password);
// 2.再将userId和password加密后的串形成新密码明文
String newPassword = md5UserId + md5Password;
// 3.将新密码明文再通过SHA加密成密文
String newEncryptedPassword = shaEncrypt(newPassword);
// 4.比较两个密文是否相同
if (encryptedPassword == newEncryptedPassword) {
return true;
}
return false;
}



用户头像

丿淡忘

关注

还未添加个人签名 2018.05.23 加入

还未添加个人简介

评论

发布
暂无评论
Week11