分布式系统与分布式锁简析

有80%的程序员对于分布式系统,并无一个很清晰的概念。分布式系统涉及到不少的技术、理论与协议,不少人也说,分布式系统是“入门容易,深刻难”,有一些人简历上写着熟悉分布式系统,可是其实只能算是管中窥豹,只见得其中一斑。程序员

 

那么究竟什么是分布式系统?

分布式系统是由一组经过网络进行通讯、为了完成共同的任务而协调工做的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机没法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。算法

 

分布式架构图:数据库

 

 

首先须要明确的是,只有当单个节点的处理能力没法知足日益增加的计算、存储任务的时候,且硬件的提高(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,咱们才须要考虑分布式系统。网络

 

分布式系统的几个特性:可扩展性、高性能、高可用、一致性。这几个特性也是分布式系统的衡量指标,正是为了在不一样的程度上知足这些特性(或者说达到这些指标),才会设计出各类各样的算法、协议,而后根据业务的需求在这些特性间平衡。架构

 

那么分布式锁又是怎么产生的呢?

现现在大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提高,可是当某个资源在多系统之间,具备共享性的时候,为了保证你们访问这个资源数据是一致的,这个时候咱们须要用分布式锁来让多客户端互斥的对共享资源进行访问。分布式

 

目前主流的有三种分布式锁,从实现的复杂度上来看,从上往下难度依次增长:性能

  • 基于数据库实现
  • 基于 Redis 实现
  • 基于 ZooKeeper 实现

不管哪一种方式,其实都不完美,可是不一样的业务也要根据本身的状况进行选型,它们之间没有最好只有更适合!优化

相关文章
相关标签/搜索