Distributed Systems
Why disribute systems?
- provides reliability, your data is located in multiple places
- offers scalability, both write and query
为什么要做分布式?
- 我们可以避免把所有鸡蛋放在一个篮子里面(可靠性)
- 降低系统负载(扩展性)
What is the problem?
分布式数据一致性 (Distributed Consensus)
分布式系统必将存在多个数据节点,真实世界的网络情况是复杂多变的,如果节点与节点之前出现不能通信的情况,数据的一直性就很难得到保证,这对业务来说也是绝对不能接受的。
What is the solution?
Paxos
– Famously difficult-to-understand
ZAB (ZooKeeper Atomic Broadcast)
– Created by Yahoo! Research
Raft
– Diego Ongaro and John Ousterhout at Stanford
About raft: Secret Lives of Data (http://thesecretlivesofdata.com/raft/)
About the LodaStack
lodastack是我们正在开发的项目,通过raft维护了哪些数据的一致性:
- db所有数据变更(写,删除)
- cache清理,cache在每个节点上是独立的,只有在清理的时候才通过集群统一清理
- 集群meta信息,除了数据我们还维护了一个meta信息,方便后期扩展,目前只是存了HTTP API和raft的对应关系。
References: