关于分布式的问题

谢@开始的痕迹 邀。
关于分布式的问题

我用nginx这个反向代理服务器实现负载均衡,集群几台服务器,同时协作完成一个任务。这样的情景下就是分布式吗?是的,是分布式,一台服务器(计算机)的处理能力是有限的,用户(线程)越多,处理也就越慢,这个时候就要引入分布式来解决了。
那我对数据库进行主从分(读写)离这些也是分布式吗?理论上来说,这也是分布式的一种。
那分布式是泛指能够把我们整个交互流程中,各个环节中(如后端,数据库)能够有机的实现分摊到不同服务器处理的效果就是分布式吗?是的。
那在这个基础之上,分布式和大数据又是什么关系呢?在台湾,大数据叫:海量资料,我觉得这个叫法比较贴切一些,这些数据是拿来处理、计算、分析的。而分布式指的是架构。当然了,由于数据量比较大,单机处理能力有限,大数据一般都是利用分布式架构来处理的。


■网友
抽象点来看,只要能把计算资源、存储资源分摊到多个节点实现同一件事情,都可以称之为分布式,所以你枚举的那些都算。

另外,大数据和分布式的关系,分布式是实现大数据存储和计算的手段,由于数据量大到单台机器处理比较吃力,甚至无法处理的时候,这就要借助多台机器的计算资源和存储资源实现,分布式是一种解决方案(手段),大数据是面临的困境(问题)。

■网友
分布式处理 是数据处理的一种方式 。可以将计算分散在多台机器上 从而可以在可接受的延迟的前提下 ,提供超出单机处理能力的处理结果



■网友
分布式要解决的问题
我们可以看到在分布式这个研究方向上有很多的问题。那个问题才是分布式这个学科最核心的问题呢?我认同在1993年Borowsky, Elizabeth; Gafni, Eli在其论文中指出的“各种模型下可解与不可解分布式任务边界的划分是分布式计算理论的圣杯”的说法。
也就是说分布式工程学要解决的核心问题是:对任意软件系统给出能否分布,如何分布和分布结果?这个问题在本文之前是没有答案的。也就是说分布式在这之前只是一个研究方向。过去没有任何已知的方法来解决分布式工程学的核心问题。只有本文给出了解决核心问题的方法论,分布式才从研究方向变为学说。
要回答对任何软件系统能否分布,如何分布和分布结果。首先要对软件系统进行分类。我们将软件系统分为4类。它们分别是单任务\u0026amp;计算,多任务\u0026amp;计算,单任务\u0026amp;计算并有共享数据集,多任务\u0026amp;计算并有共享数据集。这个分类涉及到3个概念。首先任务就是离散数学中所表述的程序逻辑。是由一步或多步的计算过程组成。计算是指由计算单元完成程序逻辑的运行。共享数据集是指每次任务执行完成后所生成的数据,是否保留给下次执行时使用或其他任务共同使用。对于这4种情况我们分析如下。
1,单任务\u0026amp;计算。最容易理解,例如生成π的计算。这种算法能否分布式是数学意义上的概念。目前已知只有少量数学算法可以进一步细化为分布式。
2,多任务\u0026amp;计算。可以理解为多个数学算法的同时执行。也就是我们传统上互相隔离的计算机进程。这种完全隔离的计算机进程是可以分布式。例如两台硬件上的计算机系统就可以理解为广义的分布式系统。
3,单任务\u0026amp;计算并有数据集。这种情况比较常见于集成电路或控制器中。例如汽车的速度传感器收集速度数据,使用速度数据修改显示屏。这种情况是不能进一步细化为分布式。但从广义角度说这种情况和第2种情况相同。对于多个 “单任务\u0026amp;计算并有数据集”共同工作的场景也可以认为是一种广义的分布式系统。
4,对于最后一种情况“多任务\u0026amp;计算并有共享数据集”,也就是我们常说的异步网络下的软件系统。使用AP\u0026amp;RP方法可以明确地指出这种状态能否分布,如何分布以及分布结果。而演员模型也就是面向对象的模型或称为按产品功能划分的方法。不具备判断能否分布的能力,需要不断尝试不同的分割方案,并判断是否会导致数据冲突。直到找到一个错误较少的分割方案。也同样无法给出分布式的结果。同样一致性哈希表也不能给出任何答案。一致性哈希技术通常是使用最大冗余的方法试图覆盖所有可能的分割结果。


推荐阅读