微信号:phpgod

介绍:本公众号对PHP开发技术进行全面透析,所含内容适合各个阶段的PHP developer阅读和收藏,既然关注了就一定会有收获.

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

2019-04-08 18:30 PHP技术大全

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


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


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

分布式架构图


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


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


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


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

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

  • 基于数据库实现

  • 基于 Redis 实现

  • 基于 ZooKeeper 实现

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

添加女神老师微信:xixi23673

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


部分资料展示:

前50名限时精品福利:


亿级pv多级缓存架构电商案例分析


Redis缓存击穿/缓存雪崩预防策略


腾讯高级PHP工程师精品笔试题


40W年薪技术-微服务高可用架构


扫描下面二维码领取

本课程深度对标腾讯T3-4标准,贴身打造学习计划为web开发人员进阶中高级、架构师提升技术,为自己增值涨薪!


 
PHP技术大全 更多文章 怎么样“抄“一个PHP扩展 大文件的上传和下载 【高并发】redis队列缓存 + mysql 批量入库 + php离线整合 利用docker在服务器运行多个版本php 实现单机百万并发
猜您喜欢 辞职信:写给我的“藤野先生” 毛利率,基本面分析最基础的指标 Chrome浏览器无法播放本站视频的解决方案 华与华董事长华杉:为什么你开的发布会没人来? 高薪来袭,传智播客重磅推出Python学科!