都会有哪些错误异常
云服务内部错误
有时候程序引起的内存溢出或者是服务器意外重启等意外都会引起服务器短暂宕机,此时当前节点无法正常提供应有的服务,称之为不可用。
网络异常
有时候多台服务器中间的某一个服务器所在的机房断网了,或者是网关异常。导致节点不可用,
磁盘故障
嗯,不多解释,就是硬盘坏了
超时
在分布式系统中,一个请求除了成功和失败两种状态,还存在着超时状态。
分布式的衡量指标
性能
常见的性能指标有:QPS,TPS,系统吞吐量
其中,吞吐量是指系统在某一段时间内可以处理的请求的总数包括(request对CPU的消耗、外部接口、IO等等紧密关联),通常为每秒的读写操作数总和,
- 系统吞吐量:在无并发的系统中,吞吐量为响应时间的倒数,例如响应时间为 10 ms,那么吞吐量为 100 req/s,因此高吞吐也就意味着低响应时间。
- QPS (Queries Per Second)意思是“每秒查询率”,大白话就是一秒钟服务器可以响应多少次
- TPS (Tran sactionsPer Second) 也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,
可用性
可用性代指应用在面对各种异常时候可以提供正常 的服务能力,可以用应用的可以提供服务的时间占用使用时间的百分比来表示。
一致性
一般分为两种一致性,从客户端的角度看,读写操作等是否满足某个特性,服务器角度看,多个服务器之间的数据是否一致
大致有这几种模型
-
一个节点写入数据之后,所有节点都可以读取到最新值
要求主副本将同步操作日志发给备副本之后进行等待,要求至少一个备副本返回成功后,才开始修改主副本,修改完成之后通知客户端操作成功。
优点:至少有一个备副本拥有完整的数据,出现故障时可以安全地切换到该备副本,因此一致性好。
缺点:可用性差,因为主副本需要等待,那么整个分布式系统的可用时间就会降低。 -
一个节点写入数据之后,不能保证所有节点都可以立即读取到最新值
主副本将同步操作日志发给备副本之后不需要进行等待,直接修改主副本并通知客户端操作成功。
优点:可用性好。
缺点:一致性差。 -
一个节点写入数据之后,只能保证过了一定时间之后可以读取到最新值
可扩展性
简单粗暴就是分布式系统是否可以动态弹性增加服务器已承载更多的压力
容错
分布式系统故障发生的概率很大,为了实现高可用以及减少人工运维成本,需要实现自动化容错。目前没有真正意义上的遇到分布式错误的情况,故此,略。。。(而且公司是买的阿里云服务【负载均衡服务,mysql集群…】,嘿嘿,不用我操心)