浅谈分布式系统的优缺点
随着通信技术的发展、移动互联网的普及、物联网车联网人工智能的兴起,每天所产生的数据呈爆炸性的增长。这种尺度的数据不是传统单机系统可以独立处理的,而只能借助于大规模的分布式系统,因而分布式系统渐渐的变成一门“显学”。
一、什么是分布式系统
分布式系统(distributed system)由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。
分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。
因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
分布式系统可以应用在不同的平台上如:PC、工作站、局域网和广域网上等。
分布式系统有三个特点:
- 系统中涉及的各个节点并行地工作。
- 这些节点的宕机事件是独立的。
- 这些节点之间没有一个全局时钟,也就是说各个节点的本地物理时钟是有偏差的。
二、分布式系统的优点
1)可用性(容错性)
分布式计算系统中的一个重要的优点是可靠性。一台服务器的系统崩溃并不影响到其余的服务器,仍可以正常对外提供服务。
2)可扩展性
可以通过线性的增加机器资源,来应对不断增长的外部需求。
3)资源共享
共享数据是必不可少的应用,如银行,预订系统。
4)灵活性
由于该系统是非常灵活的,它很容易安装,实施和调试新的服务。
5)更快的速度
多地部署,将用户请求按地理路由到最近机房处理。拥有多台计算机的计算能力,使得它比其他系统有更快的处理速度。
6)开放系统
由于它是开放的系统,本地或者远程都可以访问到该服务。
7)更高的性能
相较于集中式计算机网络集群可以提供更高的性能(及更好的性价比)。
三、分布式系统的缺点
分布式系统最大的问题是复杂性。
1、数据的一致性
考虑到大量的机器故障:宕机、重启、关机,数据可能丢失、陈旧、出错,如何让系统容纳这些问题,对外保证数据的正确性,需要相当复杂的设计。
2、网络和通信故障
网络的不可靠,消息可能丢失、早到、迟到、Hang住,这给机器间的协调带来了极大的复杂度。像TCP等网络基础协议,能解决部分问题,但更多的需要系统层面自己处理。更不用说,开放式网络上可能存在的消息伪造。
3、管理复杂度
机器数量到达一定数量级时,如何对他们进行有效监控、收集日志、负载均衡,都是很大挑战。
4、延迟
网络通信延迟要比机器内通信高出几个数量级,而组件越多、网络跳数越多,延迟便会更高,这些最终都会作用于系统对外服务质量上。
极简慕枫-Global,帮助更多创新型企业实现品牌全球化!