集群和分布式其实是两个完全不同的概念。将业务集群化,部署在多台服务器上,称为集群。这里的一个业务可以直接看成一个程序包。例如,该公司开发了一个类似于Tbao的在线商城,客户可以在其中浏览商品、加入购物车、支付,完成整个购物过程。公司买了一台服务器,部署了这个程序,可以让一千人同时在线购物。当客户越来越多的时候,服务器的负载越来越高,商城的页面也越来越卡。这时候公司会多买几台服务器,在每台服务器上部署一套商城程序。请求被转发到每个服务器,这是集群。分布式将一个业务拆分成多个业务,然后分别部署在不同的服务器上。这是分布式的。再比如公司的网上商城,分为商品系统和支付系统两个系统。用户在商品系统上完成浏览商品、加入购物车等动作,在支付系统上完成支付动作(当然用户无法感知到两个系统上的操作),这是分布式的。当然还可以继续拆,比如拆:用户系统、积分系统、物流系统等。分配利益领导说我们要做一个二手交易平台,类似X鱼。这时候用户系统和支付系统就可以复用,实现服务复用。分布式+集群分布式和集群通常结合使用;比如商品系统部署两套,支付系统部署两套,每套都在前面做负载均衡,这样即使单台服务器宕机,也不会影响到整个业务流程。还有一种不依赖于负载均衡的解决方案,就是使用服务注册/发现:总之集群部署容易实现。当单机不能满足业务需求时,可以采用集群部署。至于是否做分销,业务拆分的方式和粒度要根据公司的实际情况来定。
