发布网友 发布时间:2022-11-09 22:09
共1个回答
热心网友 时间:2023-11-22 20:47
分布式编程开发系统相信大家应该不陌生了吧。
而关于分布式的缺陷或者说问题大家是否有去研究呢?今天我们就一起来了解一下,关于分布式系统中存在的几个问题吧。
网络并不是可靠的你应该明白,分布式系统中不同节点间的通信是基于网络的。
网络使得它们连接起来共同协作。
然而,光缆被挖断的事件相信你也看到过不是一两次了。
除此之外,网卡异常、交换机故障、遭受恶意攻击等导致的网络拥塞、网络中断、报文丢失的种种迹象皆意味着网络随时可能无法正常运作,是不可靠的。
此时,需要在你的系统设计中,尽可能地考虑到:当前节点所依赖的其他节点由于各种原因无法与之正常通信时,该如何保证其依然能够提供部分或者完整的服务。
这个概念在软件域被定义为“鲁棒性”。
不同节点之间的通信是存在延迟的网络连接的是处于不同物理位置上的节点,学过物理和数学你的应该明白,两点之间是存在“距离”的,而我们的分布式系统需要在这个距离之上进行数据的传递,本质上就是物质的传递。
同时应该你也知道,物质的运动速度不会超过光速。
所以,不同节点之间的通信是需要经过一段时间的,也就意味着会存在延迟。
具体的延迟是由所用的传输介质、节点当前的负载大小所决定的。
带宽是有上限的这个点,我相信你是知道的,因为当你通过QQ、钉钉之类的工具传输或者下载一个大文件时候,就发现它是存在上限的,这个上限是根据你的网络带宽大小决定的。
但是,为什么你还是有可能会掉入这个陷阱里呢?电脑培训http://www.kmbdqn.cn/发现这往往由于你对所传输的数据的大小和频率没有充分的认识,导致了你觉得达到上限是一个很久远的事情,不用考虑它。
分布式并不直接意味着是“敏捷”了可能你曾经有过这样的想法,当在规模较大的集中式系统中工作的时候,每次和许多人在一个代码库里提交代码,老是遇到冲突、排队等待上游模块先开发等等。
这时你会想,如果改造成分布式系统,这些问题都没了,工作效率高多了。