架构师训练营 - 命题作业 第 11 周
一、导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。
1、硬件故障:如宕机、网线断、交换机路由器故障等等,这种一般建议跨机房分布式部署;
2、DNS劫持:这个一般没有太好的办法,可以在内网部署自有的DNS服务器,并指定可信的上级DNS服务器。
3、高并发访问:做好系统架构设计,支持横向扩容,然后可以用Docker进行动态扩容或缩容。
4、DDoS攻击:没太好的办法,一般要在最前端入口处进行流量过滤。
高可用方案:
1、异地多活
2、主备、读写分离,且至少2个以上的读库
3、自动化测试,避免线上问题
4、灰度发布,小流量或部分用户验证通过后才上线
5、滚动发布,无缝无感发布。
6、完善的监控体系和度量数据采集。
二、请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
代码如下:
版权声明: 本文为 InfoQ 作者【水边】的原创文章。
原文链接:【http://xie.infoq.cn/article/6ce069222755e2ac0621ce07d】。文章转载请联系作者。
评论