首先我觉得这个架构好处是实现原理简单,而且扩展性弹性比起RISC架构来好处不言而喻但其实这个架构里面也存在着无谓的资源浪费可能性例如拿存储而言,目前Hadoop类的多副本分布式存储很火一份数据存三份,发肢腔现有数据损坏立即找空闲空间恢复听上去很简单很容易实现很高效,但如果你真的坐下来仔细算算账,你就会发现:
1. 当你数据量不大(小于PB)的情况下这种一份数据存三份方式的成本其实比现有任何商业存储方案的成本都要高
2. 这种方式下每台服务器的CPU利用率都很低,而现在市面上的大存储容量服务器,CPU配置都很高所以这种方式,基本上是对于CPU资源的一种浪费所以,或许对于数据量适中的企业来说,用EC CODE这种以计算能力换存储的分布式存储解决方案会比多副本方案更经济实惠
3. 这种方式很容易让IT运历丛衫维人员产生一种**惯性思维 即要提高系统在线时间就多买些服务器就好了因为服务器多了分布性好了自然冗余度就高了于是不必要的服务器采购就这么产生了,每个数据中心也就又多了很大一笔不是很必要的电费开销
其次,我觉得分布式架构的某些故障很可能会产生连锁效应,导致更严重全局瘫痪打个比方,大家都知道赤壁之战的故事里面有个很著名的桥段就是庞统献连环计,铁锁连舟起始时使曹操万余战船连成一体稳如平地进可攻退可守前后都可照应看似完美,但唯有一个命门就是怕火攻而诸葛亮周瑜正是利用这个命门,解东风火烧赤壁把曹操百万大军杀的丢盔卸甲互联网的分布式架构其实我觉得也有类似命门大型机之所以那么贵,其实很多时候用户在为千万分之一甚至亿万分之一的万一买单而互联网,现在的公有云架构,在设计之初,基本的考虑思路是大用户,大并发,然后尽量减少TCO所以很多时候,设计架构时会先把那些千万分之一排除在外,暂时不予考虑而系统上线之后,稳定运行一段时间用户量**,精力往往又会去专注扩容方面了搞不好就会把一些命门漏掉,于是乎万一正好遇上东风吹到了命门上,后果估计会比曹阿瞒更惨因为IT世界里还没有那么仁义的关云长会在华容道上放曹操一马
最后,我想说互联网,云计算的业务类型其实和传统企业的业务类型不一样,所以大型机,系统处理的任务,运行的计算并不一定都适合移植到分布式系统架构上来还是以交通运输举例:我要去美国,目前还是只有飞机可以满足我的需求当然你可以说我坐动车也可以,无非是多转几趟跨国列车但那毕竟很勉强,速度不快,费时费力还不省钱,毫无意义人家直接飞过去就行了,你却要绕着太平洋海岸线跑一个大圈来兜,何必呢?
那么以上这些问题有没有办法解决呢?其实我觉得解决以上问题的关键就是两个字:运维分布式系统,要保障其安全可靠的运行,合理有效的扩容,关键不在系统的软硬件,而是在系统搭建之后的运维和持续的对系统的改进修正!现在网络上很多人都在热衷于各种开源架构如openstack,Hadoop的开发,应用场景探讨但个人以为这些开源系统的特点是搭建简单,维护艰难!要想把这些架构和技术真正投入企业成熟应用,在运维管理上投入的成本可能大得多因为这些系统架构更分散,出现的不可预估性更多,同时也更需要有人来理清何时用分布式架构,何种场景郑局还是需要传统架构那么可能有人要问,既然如此,我们还有必要走分布式系统这条路吗?当然有!原因也很简单:分布式架构给了我们处理海量请求的能力和应对突发事件的弹性;同时分布式架构也使系统具备了更好的扩展能力和更多业务创新的可能性。