消除单点,一篇搞定 | 架构设计篇
系统架构中,为什么会存在单点? (1)存在设计缺陷,出现了单点; (2)能大大简化系统设计,有意为之,设置单点; 典型互联网高可用架构,哪些地方可能存在潜在单点? 典型互联网高可用架构: (1)端,通过DNS,由域名拿到nginx的外网IP; (2)反向代理,nginx是后端入口; (3)站点应用,典型的是tomcat或者apache; (4)服务,典型的是dubbo提供RPC服务调用; (5)数据层,典型的是读写分离的db架构; 在这个互联网架构中,站点、服务、数据库的从库都容易通过冗余的方式来保证高可用,但: (1)nginx是一个潜在的单点; (2)数据库写库也是一个潜在的单点; 哪些例子,因为设计需要,有意设置的单点? 先看GFS(Google File System)架构的例子: GFS的系统架构里主要有这么几种角色: (1)client,就是发起文件读写的调用端; (2)master,这是一个单点服务,它有全局视野,掌握文件元信息; (3)chunk-server,实际存储文件的服务器; 在GFS系统里,master是一个单点服务。 Map-reduce系统里也有类似的角色...