什么是分布式?感谢分享,百度能搜到的概念性的东西就不要贴了 java开发的web网站怎么实现分布式?

1,什么情况下需要用到分布式? 2,分布式是多个服务器同时运行一个web程序吗? 如果是这样,那么这几个服务器怎么分工呢 3,百度百科里说:分布式是利用用户的空闲cpu帮助计算web程序,如果是这样,那么访问我的网站用户还需要装一个客户端吗 分享啊
回答如果是我需要的再追加100

分布式概念还是简单的吧,主要是理解为什么要分布式,和分布式主要做什么。
首先分布式的主要作用有以下几点:
1、提高应用的可用性:服务器要保持长时间能够有效的使用,但是现实情况又是很不稳定的,例如电脑会死机,会断电,硬件设备会损坏,使用分布式可以一定程度的解决这些问题。
2、分散服务器运行压力,这本身也是提高应用可用性的一个方面,例如你的应用功能很多,逻辑很复杂,或者操作的数据量较大,单个应用或者机器难以甚至无法处理你的业务,那么就需要使用分布式。
分布式的概念其实也很简单,就是一个应用做不了或者难以做的事情,让多个应用去做,这就好比让一个人去完成的事情让多个人去完成,举个现实中很简单的例子,例如造车,造车这个工作本身一个造车厂可以完成这个任务,只是一个工厂造车,成本、技术、人员等等都会提高制作成本,而且因为技术过于驳杂,一个厂能造,但是成本和难度都会增加,但是拆分给多个厂来造车,例如一个厂造发动机,一个厂造底盘,一个厂造外壳,一个厂做电子仪表盘等等,把各个配件分散给不同的厂制作,这样每个厂专心做自己更专业的事情,这样既降低了成本,有提高了工作效率。
回到我们的web应用,一般来说,一个系统就是一个应用,系统里面有各种功能,例如学生信息管理系统,系统里面包含各种功能,例如用户登录和认证、权限配置和授权、学生信息的管理、学生的入学管理、学生的毕业管理、校友信息管理等等各种功能,但是当学生的数量特别多,内部业务逻辑特别复杂的时候,一个应用可能不能够承担起这个系统的正常运转,那么就可以考虑分布式,来使用多个应用完成这个系统的功能,例如做一个应用负责登录认证模块,一个应用处理授权的功能,另外一个应用处理学生信息的内容等等。
总结分布式,其实就是一个应用的事情让多个应用来解决,分布式是应用级别的分工,在一台机器的多个应用,我们叫垂直分布式,在多台机器上的分布式叫水平分布式,在一台机器的分布式实现起来比较简单,只需要实现应用之间的内存数据共享即可,内存数据共享方式很多,可以使用共享文件等等方式,多台机器的分布式就需要借助网络通信来共享数据,如果是通语言同技术的应用,可以直接共享内存数据,如果是不同语言的分布式应用,就需要参照一些通用传输协议的数据,例如xml json。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-27
别被百科忽悠,别被名词吓到。
分布式,纯粹就是故作高深。
完全可以换一个词——“分工合作”
分工合作能理解吗?有这么一件事情,你一个人做得10小时,但是10个人做,就算不是缩短到1小时,但也会缩短很多对吧。
你可以把你的程序写得很开放,但又很复杂。然后你把你的程序在10台电脑,甚至100台,1000台电脑上面都装上,不过你唯一需要保证的是——这1000台电脑之间能够互相通信,能够互相传递你的程序运行参数和状态,你的程序可以换句话说是由这1000台电脑共同运行的。
如果这还不能理解,就想象多线程。一个程序分了多线程,一个CPU有多个核心,每个核心都可以运行一个线程。
类似的,你把每台电脑想象成一个核心,这样多台电脑多个核心。
分布式程序其实概念上很简单,只是实践起来很辛苦,因为要组织很多东西在一起工作是很困难的。哪怕是人,别说1000个人,就是10个人,你组织他们协同工作都很困难了!
程序上也是如此,协同1000太电脑工作需要有十分复杂的协议和数学理论做支撑。追问

是啊,可以说的具体一点吗,如何协作一起工作

追答

分布式的理论有很多的,不是百度知道能回答全的,况且我本身也并不了解很深入,没有能力回答你太多。不过建议你还是不要太盲目追求分布式。分布式的架构真的很复杂,最经典的例子就是现在的互联网,就是一个分布式的架构。而目前互联网的复杂程度可以说是人类所有智慧和知识的集合体了。

追问

百度的自动推荐做的不好,让人苦笑不得,
我想知道些具体点的,复杂不是问题,例如楼下的举个例子,

本回答被网友采纳
第2个回答  2018-06-27
我看了百度百科后的理解是:
集群:集群是同一个任务,由许多台服务器通过负载均衡来完成。
分布式:一个任务,拆分为多个子任务,由不同的服务器完成各自的结果并汇总。
比如有二十个算术题,集群负载均衡概念是让10个人每个人分1个或2个题,有的人学习很好,可能就给他分3道题,有的人学习差,就只给他分1个题。注意每个人分到的这些题都是完整的一道或多道题并没有拆分。把学习能力理解为服务器的处理能力就可以了。
有一个算术题,分布式的概念是,把这个题分成几个小问题,分给一堆人,这堆人每个人解决自己的小问题。
分布式利用集群概念是指:首先布置一层分布式网络,例如A节点处理乘法问题,B节点处理加法问题。那么A节点服务器或许会接收到大量的计算请求。例如例子中的现在有20个乘法题,那么A节点可以采用集群方式,把这20个乘法题负载均衡的方式分给同在A节点的其他服务器。这里有个点就是,A节点可以是一台服务器,也可是多台服务器。当是多台服务器处理同类请求的时候,显然就是分布式中某个节点利用了集群概念了。
这只是我自己的理解,如果不是的话还请路过大神指正。。。
关于你说的问题,我挑个我会的吧。运行同一个web程序,我认为这是集群概念而非分布式概念,如果每个节点运行一个web程序的一部分,例如A运行 数学计算 程序的 加法部分。B运行乘法部分,我认为这才算分布式概念。运行同一个web程序,显然可以同时接受大量请求,然后负载均衡给每一台服务器完整运行咯。
就我知道的,Dubbo框架就是一个分布式框架,也可以实现集群负载均衡。
第3个回答  2012-10-27
当你所需要做的项目非常巨大的时候,就可以使用分布式.举个例子,当你玩一款网络游戏的时候,会有很多很多的服务器来让你选择,你可以根据自己的情况选择你的服务器.但是无论哪个服务器,你最终玩的都是这款游戏,这些服务器之间其实就相当于实现了分布式资源共享.现实生活中,可能一项工程设计各个领域的学术,如果都放在一个服务器是不可能的.此时需要实现稀有资源共享,并把最适合的程序放在最合适的计算机上,让多台计算机上平衡计算负载.再说客户端的问题,你访问人人网,可以通过网页直接访问,也可以下载人人桌面进行访问.这两种方式都可以.所以说你的网站架设在服务器上,用户去访问是不需要装客户端的,但是也可以选择装客户端来提高性能.追问

恩,那就是说同一个版本的web程序需要分别发布在2台服务器上,然后2台服务器连接的是同一个数据库,可是用户访问的是同一个www地址,那么这是怎么做到的呢,又怎么决定选择哪台服务器呢,游戏可以选择

第4个回答  2018-08-08
反向代理 web业务集群 ,数据库集,缓存集群,分布式属于大数据量下才能体现出效果,让用户或者业务进行分流处理,小网站一般用不着,对维护成本上也没必要,不懂的把关键字在百度上搜,再不成你看看spring家族中 spring cloud