品牌知名度调研问卷>>

分布式系统面临的挑战有哪些 分布式系统带来的问题及解答

本文章由注册用户 知无涯 上传提供 ★ 评论 发布 纠错/删除 版权声明 0
摘要:分布式系统建立在网络上,而网络是不可靠的,可能的网络问题包括:网络分割、延时、丢包、乱序等,这些会给分布式系统带来挑战,除此之外,异构的机器与网络、普遍的节点故障也是分布式系统面临的主要挑战之一。分布式系统工作过程中,还会带来一些问题,比如如何找到所需的服务、如何避免雪崩、如何对系统进行监控等。下面一起来看看分布式系统面临的挑战有哪些以及分布式系统带来的问题及解答吧。

一、分布式系统面临的挑战有哪些

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

1、异构的机器与网络

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

2、普遍的节点故障

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

3、不可靠的网络

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

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

二、分布式系统带来的问题及解答

1、如何找到所需的服务?——服务发现组件

问题描述:线上生产环境中,尤其容器部署情况下服务实例地址(服务器端口)是动态分配的,服务调用者无法提前获取服务实例地址和端口。

解决方案:在服务运行时,通过服务发现组件解析服务名来获取服务实例地址和端口。

2、如何找到实例?——请求分发的策略

问题描述:找到服务器后,还应该确定将当前请求发往服务器的哪一个实例。

解决方案:

(1)如果同一个服务的实例都是完全对等的(无状态),那么按负载均衡策略来处理就足够(随机、轮询、权重、hash、一致性hash、fair等各种策略)。

(2)如果同一个服务的实例不是对等的(有状态),那么需要通过路由服务(元数据服务等)先确定当前要访问的请求数据在哪一个实例上,然后再进行访问。

3、如何避免雪崩?

问题描述:一个故障由于正反馈不断被扩大,从而导致整个系统故障

解决方案:

(1)【快速失败】和【降级机制】:熔断、降级、限流等,通过快速减少系统负载来避免雪崩的发生。

(2)【弹性扩容机制】,通过快速增加系统的服务能力来避免雪崩的发生。

4、如何对系统进行监控?

问题描述:对于一个分布式系统,如果我们不能很清楚地了解内部的状态,那么高可用是没有办法完全保障的。

解决方案:监控系统的各层

(1)【硬件层面】:服务器温度、磁盘RAID阵列等。

(2)【系统层面】:存活状态、CPU、RAM、load负载。

(3)【应用层】:mysql、Nginx、Django、LVS、HAProxy。

(4)【业务层面】:PV、UV、订单。

5、分布式存储如何做数据切片?

问题描述:既然要实现分布式数据库,那么应该如何将数据进行切片?

解决方案:Hash、Consistent Hash和Range Based分片策略。

6、如何设置冗余?如何复制数据?

问题描述:分布式存储的高可用性需要冗余来保证,那么如何做冗余?如何对数据进行复制、更新时保证两份数据的一致性?

解决方案:

(1)【中心化方案】:主从复制、一致性协议(Raft和Paxos)。

(2)【去中心化的方案】:Quorum、Vector Clock。

网站提醒和声明
本网站为注册用户提供信息存储空间服务。除Maigoo网官方发布内容外,用户自主上传的文章、文字、图片等均不代表本站立场,本站亦不主动修改编辑,不对其真实性、合法性、准确性负责。如涉侵权、违法虚假等问题,权利人可通过平台投诉并提交相关证明,平台将依法履行通知和删除义务。 申请删除>> 纠错>> 投诉侵权>> 平台自有内容(文字、图片、界面、榜单、商标、LOGO 等)知识产权归本站所有,未经书面许可,禁止复制、转载、商用。
提交说明: 快速提交发布>> 查看提交帮助>> 注册登录>>
最新评论
相关推荐
分布式系统的CAP理论是什么 分布式系统CAP特性如何取舍
分布式系统的CAP理论是指一个分布式系统不可能同时满足数据一致性、服务可用性和分区容错性这三个基本需求,最多只能同时满足其中的两个,这一理论深刻影响着分布式系统的发展,在实际应用中,分布式系统会根据需求舍弃其中一个特性,大多数都是牺牲了一致性。下面一起来了解一下分布式系统的CAP理论是什么以及分布式系统CAP特性如何取舍吧。
分布式管理系统的市场前景怎么样 分布式系统的发展趋势分析
分布式系统具有高性能、低能耗、易扩展等优势,在指挥中心、物联网、医疗保健等多个领域有着广泛的应用,整体来看应用场景是比较广阔的,未来随着技术的发展,分布式管理系统将向智能化、灵活性、健壮性等方向发展,提高性能和可靠性、稳定性,并进一步提高管理效率和降低操作成本。下面一起来看看分布式管理系统的市场前景怎么样以及分布式系统的发展趋势分析吧。
【音响大全】音响的种类有哪些 音响哪种好 音响选购完全攻略
随着高科技的迅速发展,影音娱乐设备更新换代的越来越快,音响的功能不仅仅只有扩音了,它还具有立体环绕、虚拟环绕等多种音效,市面上音响的功能和款式各式各样,那么,音响的种类有哪些呢?哪款音响好呢?下面,小编为大家讲解音响的优点、适用人群,并分享最全的音响选购攻略,让大家享受身临其境的真实感。
音箱 家电选购 ★★★
1w+ 108
分布式系统面临的挑战有哪些 分布式系统带来的问题及解答
分布式系统建立在网络上,而网络是不可靠的,可能的网络问题包括:网络分割、延时、丢包、乱序等,这些会给分布式系统带来挑战,除此之外,异构的机器与网络、普遍的节点故障也是分布式系统面临的主要挑战之一。分布式系统工作过程中,还会带来一些问题,比如如何找到所需的服务、如何避免雪崩、如何对系统进行监控等。下面一起来看看分布式系统面临的挑战有哪些以及分布式系统带来的问题及解答吧。
分布式系统和集中式系统的区别有哪些 分布式系统好还是集中式系统好
分布式系统和集中式系统在系统架构、数据存储、任务分配、应用场景等方面存在一定的差异,相比较而言,集中式系统具有架构简单、易于管理和控制的优点,适用于对数据一致性要求较高的场景;而分布式系统具有架构灵活、可扩展性强的优点,适用于对数据处理能力和并发访问能力要求较高的场景。下面一起来看看分布式系统和集中式系统的区别有哪些以及分布式系统好还是集中式系统好吧。