分布式精华问答 | 分布式系统面临哪些挑战?

640?wx_fmt=png

布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。今天,我们就来看看关于分布式的精华问答吧!


640?wx_fmt=gif1

Q:什么是分布式缓存?


A:为了提高性能和响应时间,在应用程序(通常是Web应用程序)中“部署”并确保数据从内存加载而不是从磁盘加载(速度更慢)的解决方案。

如果要在单台机器上使用高速缓存,那么看起来很简单 - 只需从内存中的数据库中加载最活跃的数据(例如Guava Cache实例),然后从中提供。当必须在集群中工作时,它变得有点复杂 - 例如5个应用节点以循环方式向用户提供请求。


640?wx_fmt=gif2

Q:如何实现分布式系统的高可用性?


A:高可用性的前提是:保证服务系统能够持续工作,实现高可用性一般有两种手段: 一种是通过第三方软件/组件保证系统的可用性;另一种是软件/组件自身己具备高可用的技术实现。


640?wx_fmt=gif3

Q:分布式系统的优势


A:分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,其实很多号称分布式专家的人也就停留于此,大致结构如下图所示:分布式精华问答 | 分布式系统面临哪些挑战?_第1张图片


640?wx_fmt=gif4

Q:分布式与集群的区别是什么?



A:分布式:一个任务分给多台机器去做,减少单个任务的执行时间。


集群:提高单位时间内执行任务数。


例如:一个任务由10个子任务组成,每个子任务单独执行需要1个小时,则在一台服务器上执行该任务需要10个小时。


分布式方案:提供10台服务器,每台服务器只处理一个子任务,不考虑任务间的依赖关系,执行完这个任务只需要一个小时。


集群方案:同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小时后,10个任务同时完成,同样是一个小时完成一个任务。


640?wx_fmt=gif5

Q:分布式系统面临的挑战


      A:分布式系统需要大量机器协作,面临诸多的挑战:

第一,异构的机器与网络:

分布式系统中的机器,配置不一样,其上运行的服务也可能由不同的语言、架构实现,因此处理能力也不一样;节点间通过网络连接,而不同网络运营商提供的网络的带宽、延时、丢包率又不一样。怎么保证大家齐头并进,共同完成目标,这四个不小的挑战。

第二,普遍的节点故障:

虽然单个节点的故障概率较低,但节点数目达到一定规模,出故障的概率就变高了。分布式系统需要保证故障发生的时候,系统仍然是可用的,这就需要监控节点的状态,在节点故障的情况下将该节点负责的计算、存储任务转移到其他节点

第三,不可靠的网络:

节点间通过网络通信,而网络是不可靠的。可能的网络问题包括:网络分割、延时、丢包、乱序。相比单机过程调用,网络通信最让人头疼的是超时:节点A向节点B发出请求,在约定的时间内没有收到节点B的响应,那么B是否处理了请求,这个是不确定的,这个不确定会带来诸多问题,最简单的,是否要重试请求,节点B会不会多次处理同一个请求。

总而言之,分布式的挑战来自不确定性,不确定计算机什么时候crash、断电,不确定磁盘什么时候损坏,不确定每次网络通信要延迟多久,也不确定通信对端是否处理了发送的消息。而分布式的规模放大了这个不确定性,不确定性是令人讨厌的,所以有诸多的分布式理论、协议来保证在这种不确定性的情况下,系统还能继续正常工作。


640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于分布式,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!


推荐阅读:

  • 腾讯面试:一条SQL语句执行得很慢的原因有哪些?

  • 程序员专属小情话,哎呦,不错哦!| 程序员有话说

  • 普通家庭走出信息学才子,抱病参赛夺世界信奥亚军 | 人物志

  • Rust今天4岁啦, 为什么越来越多的知名项目用Rust来开发?

  • 商汤“变法”:推中小学AI教材,mini自驾车,要打造AI时代的「清明上河图」

  • 转行AI成为技术大牛,你需要理解这两项技术!


640?wx_fmt=png 真香,朕在看了!

你可能感兴趣的:(分布式精华问答 | 分布式系统面临哪些挑战?)