转 https://blog.csdn.net/huaihkiss/article/details/79342745
真集群与伪集群的区别
现在目前个人了解的集群有几种方式:负载均衡及反代的方式,去中心化的方式
去中心化的这种目前笔者还没怎么了解,负载均衡及反代的方式则是类似下图这种
用户请求进入负载器,负载器再根据轮询规则分发请求至各节点上,这个就是负载均衡器的集群方案比较基础的一个原理了
在很多工程中,有一些朋友问我:我这个集群搭在一台机器上合不合适?
现在这里我就稍微说下
所有集群节点搭在一台机器上那种就是比较经常听到的“伪集群”所有集群节点分布在多台机器上就是“真集群”
这两种有什么作用与应用场景呢?
众所周知,集群一个比较大的作用就是分散压力分散请求,将请求分配给集群节点去处理,减轻非集群的单一应用的压力
有些web应用容器,可能由于调优上边的原因,会导致有并发数限制,比如说tomcat的老版本,如果没有去修改运行模式,可能默认会采用bio的方式去处理请求,加之如果没有去修改线程池等参数,那么并发量可能会比较低,如果这时候做集群的话,可以提高不少并发数。
这个作用,真集群与伪集群都可以达到
那么,既然说有真集群与伪集群,那么真集群的优势在哪呢?
有的时候,有可能因为资源占用,硬盘内存爆满,网络问题,可能会导致一台服务器不可用,在很多项目中,很可能都会出现过类似的问题。
如果说出现了这样的问题,那么有可能负载均衡器分配请求的时候,如果是伪集群的话,那么现在任意一个节点都不可用了。如果是真集群的话,那么对于整个集群来说,只是损失了一个节点。
所以,如果只是为了分散web应用容器的并发去做的集群,那么可以选用伪集群,如果要保证节点可用性的情况下,建议还是用真集群