有关可伸缩性系统的十三条军规
创始人
2024-05-02 07:31:25
0

这篇文章中总结了一些构建可伸缩性系统的***实践,总结的不错,于是翻译了下,翻译内容如下:

可伸缩性系统的***实践

下面是我们认为的一些可伸缩性的***实践:

1、异步;尽可能的使用异步,同步调用会导致两个服务的可用性绑在一起,意味着一个服务出问题或变慢,另一个也会受到影响,这点也是eBay一直强调的;

2、泳道设计;错误隔离机制,避免一个失败影响全局,这种机制也有助于错误查找和代码替换;

3、缓存;在所有层次均使用缓存,例如数据、页面、页面片段等;

4、监测;从用户角度来看系统的性能。这包括从外部网络来对系统进行性能的监测,以及内部的系统间交互次数以及时间的监测;

5、数据复制;一方面是为了容灾,另一方面是为了提供多个用于读的数据库,降低写库的压力;

6、拆分;包括了应用的拆分以及数据库的拆分;

7、尽量少的使用数据库特性;尽可能的把数据库仅作为一个在线存储的功能而使用,不要把业务逻辑放在数据库里,否则将来会非常难扩展;

8、缓慢发布;发布时应缓慢发布,以保证新版本是正常的,避免由于某个压力测试时没测到的点,导致全站出问题;

9、压力以及性能测试;在发布前测试性能,尽管这不一定能发现全部问题,因此在发布前仍然要做好回滚的方案;

10、容量规划;提前判断系统能支撑多大的量,并做好扩容计划;

11、回滚;每次都要做好回滚的准备;

12、根源分析;确认有办法找到线上问题的根源所在,从而能够真正的解决问题;

13、从一开始就要注重质量;质量不能仅靠测试来保证,必须从设计阶段开始就去保证。

译注:
以上说的这十三点可谓是构建可伸缩性系统的金玉良言,但可惜缺乏了实例引导,没有经验的同学估计会很难看明白为什么一定要这样做,如果有些实例来说明的话,就更帅了!

本文来自BlueDavy的博客:《【译】可伸缩性***实践》

【编辑推荐】

  1. 新应用框架Jazzmaster:将可伸缩性与敏捷相结合
  2. 动态和静态程序设计语言的可伸缩性
  3. 高性能服务器网络可伸缩性
  4. 你真的明白什么是可伸缩性吗?
  5. Scala是什么?可伸展的语言!

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...