最近一直在想,大家都说分布式,公司里面也是分布式架构,说到底这个分布式到底做了什么?
我想从源头分析一下这个问题:
假如我开发了一个app ,名字叫做我的人生,我部署在一台tomcat上面
我发现使用我的人生app的人越来越多,我这一台tomcat快扛不住了
后面我想了一个办法,一台不行 ,那我就部署两台
但这样就引出一个问题,我怎么分配这两台服务,万一用户都访问了第一台tomcat,还不是一样的吗?所以我查了半天资料加了一个nginx做负载均衡
随着我用户量的不断增加,就不得不面临一个问题,我这个两台tomcat又扛不住了,继续加,我家又没有矿,该怎么办呢,左想右想,到底哪个模块用户访问的频率高,我直接把全部功能拆了
竟然预估股票走势这个功能访问频率最高我就把这个做一个集群,再来一个负载均衡
哎,我本来就两台tomcat就可以了 你现在来一个5台,这样忽悠人是吧。别急,我还没说完,我这么改是有原因的
1、原来单体架构中如果用户信息有bug,我不得不改完以后等10分钟编译完,部署上去,现在用户信息挂了,我就把这个模块功能修复完部署上去,就花1分钟,用户体验嘎嘎好。
2、随着用户的增加,我也开了多个分公司,我把用户信息和会员信息让北京团队来维护,财务管理和预估股票走势功能用杭州团队来维护
3、因为用户总是反馈说这个预估股票走势花的时间太多了必须等一分钟时间,才看到结果,能不能缩短一下,我就在这个模块中直接加了一个,并让数据拆分,三台服务并行处理数据,返回结果,缩短了时间,用户也开心了。
那一起总结一下:
什么叫集群:同一个功能部署在多个服务上面。
什么叫分布式:一个系统中的不同的功能部署在不同的服务上面,他们之间通过网络通信来交互。