请教各位前辈到底什么是分布式和集群,如何在Java中应用


网上看到的都是概念,可是实际上到底如何应用,完全是一头雾水

也不知道如何在自己的电脑模拟出来

请问各位前辈到底什么是分布式和集群,如何在Java中应用?

分布式 java

提不起劲叶子 10 years, 10 months ago

自己试验可以尝试一下docker!

狂氣D紳士 answered 10 years, 10 months ago

分布式再扯上java,那么一般就是特指hadoop和spark。。

个人的省钱方案就是在多个虚拟机上跑。。

clipboard.png

Sound answered 10 years, 10 months ago

程序软件上的分布式

一个项目,拆成多个子项目。项目之间通过不同的协议通信

集群

大概就是一件事,交给多台服务器来做吧。
举个例子,就是比如说我做一个爬虫的系统,爬虫爬网页。然后分析网页。分析这个过程是很费时间的。
所以我可以把它交给5台机器去处理,一台上一个任务处理完了,马上去处理另外任务。
这就需要6台机器。1台去获取网页数据,分别交给5台机器去做

dstar answered 10 years, 10 months ago

首先,集群跟java不java没关系。

单一服务器的负载总会有极限,所以一些耗时的程序、单次处理数据比较大程序会分布到多台服务器上进行,然后由一台服务器进行归并处理返回。拿数据库来说的话就是酱紫的:

1. insert into xxxxxx SQL发送给一个SQL分析器(一台服务器),进行一系列规则匹配、运算。将数据存储到后端N台数据存储服务器上。
2. select * from .... 同样,发送给SQL分析器(一台服务器),然后由该服务器把SQL发送到后端所有的数据存储服务器上,同时进行运算,然后把数据再发送回分析服务器,然后分析服务器进行归纳按照SQL要求的limit order等条件进行最后筛选然后输出结果。

这就是分布式了。:)

蓬莱佐玖夜 answered 10 years, 10 months ago

集群感觉 维基百科 上的解释比较好,这个跟java没啥关联,你开发的一个java服务,部署到多份,然后在前面挂哥nginx一类的负载均衡的就算是集群了。

分布式,我感觉就是你开发一个java服务,但是服务很复杂,很大,这样整体性能就不好,然后就可以把一些比较频繁的模块拆出去,比如登录,做成一个单独的服务,通过rpc来互相调用,这样就可以针对这个单独抽出来的服务进行优化,并且因为只有登录相关的内容,可以做到一个比较好的资源利用达到效率的提升。当然分布式也不一定都会提升性能,远程调用会牺牲性能,但是当服务过于复杂时,分布式会让结构更清晰,开发维护起来更方便

manda answered 10 years, 10 months ago

Your Answer