为什么要用分布式系统?
为什么要用分布式系统?
分布式系统是现代软件工程中的重要概念,特别是在处理大规模数据和复杂任务时。本文将从需求推动的角度,探讨分布式系统的基本概念、适用范围和优点。
一、分布式系统适用范围
1. 适用范围(需求的推动)
1.1 处理非结构化数据时。
1.2 硬件设备无法支持当前数据量时
1.2.1 如果你的处理逻辑或者时间算法复杂度低但是数据量达到PB级别,同时你的处理逻辑可以分布式,那么请用分布式。
1.2.2 如果你的处理逻辑或者算法复杂度高,一般是n的平方,甚至更高,并且你的算法可以分布式设计,数据记录达到万以上,就请用分布式。
1.2.3 如果你的数据记录达到万以上,并且你的算法复杂度高,大于等于n平方,那么你就要想方设法去把你的算法分布式化,如果实在不能,那么要么使用可以分布式的同类算法代替,要么去牺牲算法的准确去降低算法复杂度。
啰嗦一下,1PB=1024TB=1024*1024G,1TB相当於一家大型医院中所有的X光图片资讯量,1PB相当於50%的全美学术研究图书馆藏书资讯内容。
2. 优点
分布式系统具有许多优点,包括:
- 可靠性:分布式系统可以通过分布数据和服务来提高系统的可靠性。当一个节点失败时,系统仍然可以继续运行,因为其他节点可以接管工作。
- 可靠性高:分布式系统有多个节点,可以通过备份和冗余来提高系统的可用性和可靠性。即使某些节点发生故障,系统仍然可以正常运行。
- 可扩展性:分布式系统可以很容易地进行扩展,通过增加更多的节点来提高系统的性能和容量。这种可伸缩性使系统能够适应变化的工作负载和用户需求。
- 性能提升:分布式系统可以将任务分配给不同的节点并行处理,从而提高系统的整体性能。这样可以更高效地利用资源,提高系统的响应速度。
- 容错性:分布式系统可以通过在多个节点上复制数据来提高容错性。即使某些节点发生故障,系统也可以继续正常运行,保证数据的安全性和可靠性。
总的来说,分布式系统的优点包括可靠性高、可扩展性强、性能提升、容错性强等,使其成为处理大规模数据和复杂任务的理想选择。
3. 啰嗦小剧场
啰嗦下,不要盲目选这个,对于小的数据用这个不划算,且操作相对不易。
来一句鸡汤,适合自己的才是最好的~
二、什么是分布式系统
1. 官方定义
定义:一个硬件或软件组件分布在互联网的计算机上,组件通过信息传递来进行沟通和动作协调。
2. 特点
并发 | 缺乏全局时钟 | 故障独立性
3. 分布式计算
4. 分布式存储
5. 软件结构进化史
从单机系统→二层C/S系统→三层C/S系统→B/S系统→分布式系统。
预计下一章,三天内,出软件演化详细版本。敬请期待。还没讲到分布式系统。等系统演化之后,我在学一些线程之类的知识后会出分布式系统的。(目前预计是这样的)
1.2.2、1.2.3参考:https://www.zhihu.com/question/21975289/answer/88505769