分布式系统(一)

x33g5p2x  于2021-12-27 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(333)

构建分布式系统时,我们所关注的是计算、存储、通信这三项。
常常用于构建分布式系统的工具是RPC和线程。其中RPC的目标就是掩盖我们正在不可靠网络上通信的事实,而线程提供了并发操作的方式。因此,在实现分布式系统的时候需要花一定的时间来考虑多线程的并发控制
可扩展性(scalability):我们希望可以通过增加机器的方式来实现扩展,假如仅仅通过增加机器就可以获得更高得性能,那么称这个系统具有可扩展性。但是这现实中这很难实现,需要一些架构设计来将这个可扩展性无限推进下去。
可用性:在出现特定的错误类型的情况下,系统仍然可以继续提供完整的服务,就像没有发生错误一样。
可恢复性:出现错误,系统停止服务,但经过修理之后仍然可以提供服务。这是一个比可用性更弱的要求。
一个好的可用性系统,在出现了大量错误的时候也会停止工作,因此也应该是可恢复的。为了实现这些特性,可以借助的工具有:非易失性存储、复制(replication)
一致性:指的是当系统中有多个repliacation的时候,请求任意副本中的数据都会得到一致的结果。
一致性分为强一致性和弱一致性。强一致性也称为线性一致性,请求的处理与replication的更新是同步的,而弱一致性是异步的。强一致性可以保证从库有与主库一致的数据。如果主库突然宕机,我们仍可以保证数据完整。但如果从库宕机或网络阻塞,主库就无法完成写入操作。强一致性需要大量的网络通信才能达到。因此工业上常常使用弱一致性。在实践中,我们通常使一个从库是同步的,而其他的则是异步的。如果这个同步的从库出现问题,则使另一个异步从库同步。这可以确保永远有两个节点拥有完整数据:主库和同步从库。 这种配置称为半同步

相关文章

微信公众号

最新文章

更多