写点什么

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

用户头像
邵帅
关注
发布于: 2020 年 08 月 26 日

可用性的保障

影响可用性的因素有很多,包括系统故障、基础设施故障、数据故障、安全攻击、系统压力等等。

可用性的保障涉及到很多层面,其中包括但不限于了:

软件的设计、编码、测试、上线和软件配置管理的水平

工程师的人员技能水平

运维的管理和技术水平

数据中心的运营管理水平

依赖于第三方服务的管理水平

对待技术的态度



扩展

垂直扩展:是在同一逻辑单元里添加资源从而满足系统处理能力上升的需求。

水平扩展:通过增加一个或多个逻辑单元,并使得它们像整体一样的工作。

隔离

是对系统、业务所占有的资源进行隔离,限制某个业务对资源的占用数量,避免一个业务占用整个系统资源,对其他业务造成影响。

隔离级别按粒度从小到大,可以分为线程池隔离、进程隔离、模块隔离、应用隔离、机房隔离。在数据库的使用中,还经常用到读写分离。

解耦

在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使模块之间的耦合度尽量小。在软件架构设计中,模块之间的解耦或者说松耦合有两种,假设有两个模块A、B,A依赖B

限流

一个系统的处理能力是有上限的,当服务请求量超过处理能力,通常会引起排队,造成响应时间迅速提升。如果对服务占用的资源量没有约束,还可能因为系统资源占用过多而宕机。因此,为了保证系统在遭遇突发流量时,能够正常运行,需要为你的服务加上限流。常见的限流算法有:漏桶、令牌桶、滑动窗口计数



首先没有理解密码密文为什么会是字符串传进来,一般密码是不允许明文存储的,要做Hash运算存储,也不能用对称密码算法把密码明文加密后转化存储,因为对称的密钥也可能泄露

Boolean checkPW (String 用户 ID,String 密码明文,String 密码密文)

{

unsigned char result[32];

SHA256( (const unsigned char *)密码明文.c_str(), 密码明文.length(), result);

check (result, 密码密文)

}



用户头像

邵帅

关注

还未添加个人签名 2017.10.29 加入

还未添加个人简介

评论

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