关于分布式和集群
以前提过一个问题,但还是没是太能明白,网友说的答案也不太一样,我更迷糊了,我想两个例子这样我想能更清楚一点
1.mysql的主从数据库,这种工作方式算是集群还是分布式,还是哪个都不算?
2.lvs这种工作方式算是集群还是分布式,还是哪个都不算?
谢谢大神。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你之前的那个问题我看过,但当时我没有回答。既然你又问了一次,那我这次就来说说吧,如果有错误请多多包涵。
最重要的一点:
分布式是逻辑上的,集群是物理上的。
怎么理解这句话?
分布式:
集群:
主从数据库是不是集群?当然不是。主从数据库是一种逻辑结构,和服务器的物理布局无关:你可以用集群搭建,也能用几台独立的计算机搭建,甚至可以在一台计算机上跑几个虚拟机搭建,甚至可以在同一台计算机中通过多进程来搭建。
那它是不是分布式的?我的观点是不是。因为主从数据库两者是备份关系,一般不同时工作,只有当一个坏了另一个才会顶上。
为什么分布式存储算分布式的,而主从数据库却不算呢?因为分布式存储(例如CDN)各个节点的地位是平等的,而且同时工作。整个CDN中的节点将所有用户的请求分散开来了,所有CDN节点提供的服务构成了该CDN网络所提供服务的总和。比如某个CDN网络在北京、广州、上海和青海共有4个节点,那么全国用户对该CDN网络的请求将分散到这4个节点上去完成,这4个节点所提供的服务合起来就是该CDN网络所提供的服务。
而主从数据库则不是这样,假如某一个时间点上有N个数据库请求发到该网站上,那么在同一时间,这N个请求要么全是主数据库处理,要么全是某个从数据库处理,这些主从数据库并没有分散这些请求。
再来说说
LVS
,我的理解是它是一个采用分布式方式实现的集群
。从名字里的Virtual
也能看出来,它并不是传统的集群,传统意义上的集群是一群物理上紧密联系的计算机系统,通常位于同一个机房中,通过机架和复杂的布线连接。而LVS
则更强调的是逻辑上的:这些服务器物理上不需要放在一起,甚至可以间隔任意远(比如一部分在北京一部分在广州),然后通过网络将它们连接起来,连接后的效果与集群一样——在逻辑上,它们是一个真正的集群,具有集群的一切性质。仅仅有一点,那就是效率可能不如真正的物理集群那么高。最后,通过上面
LVS
的分析可以看出来,分布式和集群是不同的两个概念,而且相互之间并不冲突。你可以用集群来搭载分布式系统,也可以用分布式技术来实现一个集群(比如LVS
)。1.mysql的主从数据库,这种工作方式算是集群还是分布式,还是哪个都不算?
答:都不算,这只是个备份而已,连高可用都算不上。
2.lvs这种工作方式算是集群还是分布式,还是哪个都不算?
答:LVS是集群,可以横向扩展,且只要保证其中一台服务器有效就能提供服务。
分布式:简单点说就是多节点、多地域等方式,只要保证其中一个节点或是一个地域有效就能提供服务。