《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—1.2.6小结
【摘要】 本书摘自《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》一文中的第1章,第1.2.6节,作者是华为云容器服务团队、杜军等编著。
1.2.6 小结
最后,本节在此总结一下一致性协议的两大关键因素,具体如下。
1)让服务器集群作为一个整体对外服务。
2)即使一小部分服务器发生了故障,也能对外服务。
实际生产环境也对一致性协议提出了以下要求。
安全性。在非拜占庭错误模型的条件下,永远不会返回一个错误的结果。即要具备处理网络延迟、网络分区(通信断开)、丢包、冗余和乱序等错误的能力。
高可用。只要集群中的大部分机器都能运行,可以互相通信并且可以与客户端通信,那么这个集群就可用。例如,一个拥有5台服务器的集群可以容忍其中的2台出现故障。
不依赖时序。时钟错误和极端情况下的消息延迟只有在最坏情况下才会引起可用性问题。
一小部分节点不会成为系统性能的瓶颈。通常情况下,一条外部命令要求能够快速地在大部分节点上完成并响应,一小部分性能较差的节点不会影响系统的整体性能。
除了错误模型,不同的系统条件也会影响一致性的达成,例如,同步/异步通信,一致性达成的规定时间等。由于FLP定理决定了在异步通信+响应时间无上限的情况下,不存在能够解决一个节点崩溃(节点异常但其他节点不知情,强于fail-stop错误)的一致性协议。因此解决拜占庭将军问题的算法(Paxos及其变种,Raft等)都会用到同步假设(或保证safety,或保证liveness)。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)