通用的基础结构需要定义明确的行为。客户端先进行put(k,v)操作更新数据,然后通过Get(k)读取数据。此时应保证所有的Get(k)结果都是v。
让所有的行为都一致,是一件困难的事情。因为分布式系统中,你的数据是存在副本的(容错),并且存在于cache、disk。
譬如:
一致性和性能是相对称的。强一致性需要额外的通信。譬如get()需要检查最新的put()操作(分布式不是单点)。
现有的大多数分布式系统采用弱一致性来保证任务处理速度。譬如:get()时,不需要再检查或等待put()。虽然不够严谨,但是也算是一种权衡。
一致性和性能是目前设计分布式系统讨论比较多的地方。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。