什么是分布式_面试必备:你懂什么是分布式系统吗?Redis分布式锁都不会?

我面试过上千个程序员,我发现有80%的程序员对于分布式系统,并没有一个很清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,有一些人简历上写着熟悉分布式系统,但是随着我深入问下只能算是管中窥豹,只见得其中一斑。

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

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

b9dd38bf4bda679a21981df55d5f5740.png

分布式架构图

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

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

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

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

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

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

无论哪种方式,其实都不完美,但是不同的业务也要根据自己的情况进行选型,它们之间没有最好只有更适合!为了大家能更好的学习分布式架构/缓存、高并发分流、性能调优等,我为大家准备了一套精品PHP中高级进阶学习视频教程,为大家进阶PHP中高级、架构师做好准备!

「PHP分布式架构部分资料展示」

1e4b19ef768169df9de28808b3dff729.png

这套精品中高级教程和试听课程绝不是市场上的那些妖艳贱货可比,现在好多人都说PHP程序员不行,你要是开发3-5年分布式缓存、高并发、API架构都不会,怎么去拥有核心竞争力,拥有一份高薪呢?这套教程针对PHP开发2-6年的人员、正处于瓶颈期,想要突破自己涨薪的,进阶PHP高级/架构师,业务Coder更加应该来提升自己,助大家顺利进阶为一名优秀的CTO、架构师!

领取方式:点赞关注小编后私信【资料】获取资料领取方式!

部分资料展示:

3a5b60996e07cccfa3d70d49a6e9edd4.gif
57a5ba403b3a0a8f9fb9cc4a4759a792.gif
497b75ec581be0a1d71b4a07d1870487.gif
e54090ed044e76391c4878e505149599.gif

领取方式:点赞关注小编后私信【资料】获取资料领取方式!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值