来自:huashiou
第一次演进:Tomcat与数据库分开部署
第二次演进:引入本地缓存和分布式缓存
第三次演进:引入反向代理实现负载均衡
第四次演进:数据库读写分离
第五次演进:数据库按业务分库
第六次演进:把大表拆分为小表
第七次演进:使用LVS或F5来使多个Nginx负载均衡
第八次演进:通过DNS轮询实现机房间的负载均衡
第九次演进:引入NoSQL数据库和搜索引擎等技术
第十次演进:大应用拆分为小应用
第十一次演进:复用的功能抽离成微服务
第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异
第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理
第十四次演进:以云平台承载系统
IaaS:基础设施即服务。对应于上面所说的机器资源统一为资源整体,可动态申请硬件资源的层面;
PaaS:平台即服务。对应于上面所说的提供常用的技术组件方便系统的开发和维护;
SaaS:软件即服务。对应于上面所说的提供开发好的应用或服务,按功能或性能要求付费。
架构设计经验小结
N+1设计:系统中的每个组件都应做到没有单点故障;
回滚设计:确保系统可以向前兼容,在系统升级时应能有办法回滚版本;
禁用设计:应该提供控制具体功能是否可用的配置,在系统出现故障时能够快速下线功能;
监控设计:在设计阶段就要考虑监控的手段;
多活数据中心设计:若系统需要极高的高可用,应考虑在多地实施数据中心进行多活,至少在一个机房断电的情况下系统依然可用;
采用成熟的技术:刚开发的或开源的技术往往存在很多隐藏的bug,出了问题没有商业支持可能会是一个灾难;
资源隔离设计:应避免单一业务占用全部资源;
架构应能水平扩展:系统只有做到能水平扩展,才能有效避免瓶颈问题;
非核心则购买:非核心功能若需要占用大量的研发资源才能解决,则考虑购买成熟的产品;
使用商用硬件:商用硬件能有效降低硬件故障的机率;
快速迭代:系统应该快速开发小功能模块,尽快上线进行验证,早日发现问题大大降低系统交付的风险;
无状态设计:服务接口应该做成无状态的,当前接口的访问不依赖于接口上次访问的状态。
零基础学 Python,来这里
只需7天时间,跨进Python编程大门,已有3800+加入
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。【赠予】后续圈主将开发python,0基础入门在线课程,免费送给圈友们,供巩固和系统化复习
(三重福利)最近入圈送大礼包:
1、2.7G、308份最新数据分析报告
2、40G 人工智能算法 视频课
3、Python爬虫课,共14课转载 / 投稿请联系:data_circle_yon