一、架构模版:存储

  1. SQL:最终都会分库分表,避免各业务重复造轮子,会出现独立的中间件,如淘宝TDDL、百度BDProxy,开源方案有Mysql的Mysql route和360的Atlas。当业务继续发展,会出现存储平台,如淘宝UMP系统。

  2. NoSql:集群规模不断增大,假如2000台机器,利用率要提高10%的话可以节省200台机器。集群之后都会出现存储平台。

  3. 小文件:头像照片等小文件,有Hbase等。淘宝有TFS,京东JFS

  4. 大文件:Hadoop、Hbase、hive、storm等

二、架构模版:开发层和服务层

  1. 开发层:优选成熟的框架、成熟的web服务器、docker容器技术。

  2. 服务器技术:配置中心、服务中心。服务中心分为服务名字系统和服务总线系统。

  3. 服务名字系统:服务提供者向服务名字系统注册,调用者向名字系统请求我需要X服务,名字系统返回服务提供者ip port

  4. 服务总线系统:调用者不直接访问服务提供者。调用者访问总线系统,总线系统访问服务提供者,最后逐层返回。

三、架构模板:网络层

    单机的高可用高性能不涉及网络层。但是站在整个全局看,网络层是很关键。

  1. 负载均衡:DNS、HTTP-DNS(自研DNS,解决DNS不实时)、软件七层Nginx、内核四层LVS、硬件四层F5,虽然Nginx便宜,但是F5性能高,当量很大,有上百台Nginx,这时反而一台F5更便宜。

  2. CDN

  3. 多机房:同城多机房、跨城多机房、跨国多机房

  4. 多中心:以多机房为前提,但却是质的飞越,难度复杂度更高。多机房本质是灾备,切换时允许业务中断一定时间,但多中心要求同时对外提供服务,切业务在多中心间切换,关键难点在与数据已执行和数据事务性。

四、架构内功

  1. 先救火(机器扩容、Nginx一键切换等),后优化(组件化、可用性、性能问题等),再重构(单点改为多中心,服务化)。

标签: 架构

添加新评论