设计优秀系统的22条军规

优秀系统的定义:高可扩展性、高性能、高吞吐量、高可维护性、高可靠性、高可用性、高。。。。

一家之言,轻喷。。。下面正题开始(没有华丽的分割线):

1、按20倍正常访问量设计、按3倍正常访问量实现、按部署1.5倍正常访问量部署

2、简化系统范围(按80/20原则)、简化设计(成本/扩展性折中)、简化实现(更多靠经验)

3、分布方式:拷贝分布(每个机器部署同样的服务或同样的数据)、垂直分布(按业务,每个系统提供不同功能)、水平分布(sharding)

4、设计系统时假设你手头只有少量低端服务器或常见设备

5、使用合适的数据存储方式,而不拘泥于关系型数据库

6、尽量少用或不用重定向(即使用也要用Http服务器支持的原生配置)

7、CDN是分流的很好方式,适合静态内容获取

8、如果是HTML网站,重视Http expire和Cache-control头;也要充分利用服务端Cache

9、设计并实现feature时务必保证可回滚(尤其是SQL脚本的可回滚性)

10、不要使用多阶段提交事务,因为阻塞导致性能急剧下降

11、不要用select for update,因为有行级锁;可用select for read only

12、不要select *

13、合理规划系统组成失败隔离域,域之间禁止同步call,限制异步call。实际上失败隔离域的概念也是高内聚低耦合设计的体现

14、避免单点(利用active/passive, active/active, master/slave等)

15、尽量减少调用关系上是串联的组件数量(也就是减少串联深度)

16、设计系统的功能开关(即可降级指定的功能)

17、力求达到系统的无状态;实在不行,状态信息可放到客户端cookie,或者单独的分布式缓存中,或者服务化(比如用户是否购买过某物)

18、通信尽可能的使用异步,即使同步也必须要有超时时间和异常处理

19、防止消息总线拥堵,消息要少而精

20、分隔商业智能和线上事务处理系统,both Service and data

21、设计和实现时必须考虑监控和记录

22、数据库设计:不要用外键、不要delete(表添加disabled字段标示记录是否有效)

未完待续,欢迎补充。。。。。。

时间: 2024-10-21 07:51:22

设计优秀系统的22条军规的相关文章

数字化企业永续:IBM新22条军规+人机超融合

在Gartner的<2018 CIO Agenda>调查中,通过对全球3000多名CIO的调查结合分析,Gartner认为CIO的工作已经发生了改变,从原来的"交付型"高管变成了现在"IT和业务相结合"的高管.所谓交付型高管,就是CIO根据业务部门需求而交付相应的IT解决方案,而"IT和业务相结合"的高管则意味着在数字化时代,因为有很多工作都是在尝试中,业务部门难以提出需求,这就需要IT的高管与业务部门一起完成数字化工作. 四年前,I

推荐书籍 -《移动App测试的22条军规》

在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:<移动App测试的22条军规>.黄勇是ThoughtWorks资深敏捷QA和咨询师.对于我来说,和黄勇在一起的工作的这个项目,是我至今所一直怀念的那种少有的项目.黄勇在团队中以资深QA的团队协调能力和专业技能,不仅保障了项目的交付质量,同时也能很好的协调从客户到开发中的各个环节. 移动互联网的兴起 在当今世界,移动互联网已经兴起了,它距离我们大家,已经不再那么遥远了,已经开始慢慢的融入了我们的生活之中.特别在最近两年,BAT这等巨头

一个老站长的22条军规

1.每天看互联网行业新闻 干一行,爱一行,你得随时关注互联网行业的最新动态,所谓的行业趋势,未来发展方 向,通过这些新闻动态,尽收眼底.你可以不经常泡论坛,但作为一名站长,你得关注百度 互联网新闻了解大事件;精读草根网 IT 资讯;上站长网看实战技巧;订阅艾瑞网专家专栏. 养 成 RSS 订阅好习惯,每天花半小时,一切了然于胸. 2.做自己想做的站 兴趣是最好的老师, 不怕你不会, 就怕你不爱, 选择一个你喜欢的领域, 发挥你的特长, 结合你的资源,做下去.如果你喜欢朗咸平,你可以做个朗咸平粉丝

西点军校的22条军规

一.无条件执行军人的第一件事情就是学会服从. 1.将服从训练成习惯:西点军校采用"斯巴达式"的各种训练,使学员身体疲惫不堪,没有提出反抗的余力. 2.一切从零开始:不管新学员的社会经历,新学员都将被视为如同白纸一样的婴儿,新学员受训刚开始是没有名字,没有一切个人的特殊物品(包括最基本的财物),日程安排的满满的,让学员只有时间去执行命令而没时间去思考. 二.工作无借口1.绝对的制度,纪律就是纪律:西点纪律的严厉是出名的,开始大家可能只是为了形式,时间一长习惯成自然,学员逐渐地把军校的目标

22条创业军规,让你5分钟读完《创业维艰》

导语:“硅谷最牛的50个天使投资人”之一——本·霍洛维茨:“在担任CEO的8年多时间里,只有3天是顺境,剩下的8年几乎全是举步维艰.” 本·霍洛维茨,硅谷资深创业者,“硅谷最牛的50个天使投资人”之一. 1999年他与网景之父马克·安德森共同创立Loudcloud公司,后转型为Opsware公司,在互联网泡沫的恶劣大环境下,数次带领公司起死回生,并最终成功以16亿美元的高价将公司出售给惠普. 多年以后他用这样一句话总结他的创业时光:“在担任CEO的8年多时间里,只有3天是顺境,剩下的8年几乎全是

原型设计20条军规(转)

<原型设计20条军规> 第一条:原型设计的最终目的是为了准确.方便.快捷的表达产品设计人员的产品设计意图: 第二条:原型的观看者往往不是同一类对象,因此原型的设计不可避免的会有多种表现形态,每一种形态的原型都是为设计服务,没有高低之分: 第三条:如果按照产出方式,有手绘产出.软件产出之分,如果按照表现形式,有纸质.低保真.高保真之分: 第四条:如果你的产品设计周期中,原型设计时间过长,可能你需要停一下,站得远些重新审视一下自己原型设计的初衷: 第五条:原型是否要做到高交互.高仿真取决于观看者的

架构设计:系统间通信(22)——提高ActiveMQ工作性能(上)

接上文<架构设计:系统间通信(21)--ActiveMQ的安装与使用> 3.ActiveMQ性能优化思路 上篇文章中的两节内容,主要介绍消息中间件ActiveMQ的安装和基本使用.从上篇文章给出的安装配置和示例代码来看,我们既没有修改ActivieMQ服务节点的任何配置,也没有采用任何的集群方案.这种情况只适合各位读者熟悉ActiveMQ的工作原理和基本操作,但是如果要将ActivieMQ应用在生产环境下,上文中介绍的运行方式远远没有挖掘出它的潜在性能. 根据这个系列文章所陈述的中心思想,系统

justinmind夜话:数据母板系列视频教程之原型设计二十一条军规

案例描述:使用数据母板实现原型设计二十一条军规 知识点: 数据母板 效果图: 本站在线效果预览:(原型文件) 原型下载地址:数据母板原型设计二十一条军规 .vp  数据母板原型设计二十一条军规.html 在线视频: 实现步骤:

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规

程矢Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规 案例描述:中继器实现原型设计二十一条军规 知识点: 中继器分页 效果图: 在线效果预览: AxShare在线效果预览: 原型下载地址:中继器原型设计二十一条军规 .rp 在线视频: 实现步骤: 更新中-..