2014年04月22日
⁄ 架构
⁄ 被围观 4,280 views+
随着负载的增长,你精心设计的程序可能会遭遇很多突如其来的问题:系统原有的平稳将被打破,我们将对这些问题逐一考察。当然,你可以进行横向或纵向的扩展,也可以选择编写出更好的程序,让你的系统可以处理更高的负载。这样做可以节省更多的硬件开支,并让你的整个应用更加可靠,具有更快的响应时间。对于程序员来说,这必将获得非常大的满足感。
大量的对象
持续的故障会产生一个无穷事件流当系统中的对象数量增长到一定程度,我们通常将面临规模问题。随着对象数目的增长,所有类型的资源开销显然会带来很大的...
性能, 负载阅读全文
2013年03月20日
⁄ 架构
⁄ 被围观 4,259 views+
Facebook的MySQL数据库,是世界上最庞大的MySQL数据库之一,在不同地区有数千个数据库服务器。因此,备份对他们来说是个巨大的挑战。为了解决这个问题,他们构建了一个高度自动化、非常有效的备份系统,每周移动多个PB的数据。Facebook数据团队的 Eric Barrett 通过 一篇文章 分享了他们的做法。
他们没有采用大量前载(front-loaded)测试,而是强调快速检测失败,并且进行快速、自动化纠正。部署几百个数据库服务器,只需很少人力干预。使用下面的三个措施,他们做到了有节奏的增长,同时具备支持上十亿用户的...
Facebook, 数据备份, 自动化阅读全文
2013年02月25日
⁄ 架构
⁄ 被围观 4,269 views+
Mozilla的Web运营工程师Brandon Burton透露,通过内部学到的简易扩展模式,Mozilla将网站服务能力的规模从支撑数千用户扩展到支撑数亿用户。这些学到的经验教训包括缓存、对Web服务器的横向扩展、异步作业和数据库。在洛杉矶举行的DevOps集会中,Brandon展示了Mozilla对这些主题的见解。此外,他还分享了Mozilla对DevOps能力未来的技术规划,包括自服务部署、平台即服务(PaaS)和公有云的使用。以下是Brandon的演讲要点:
缓存:使网站能够高效运行的缓存主要有三种:内存数据缓存、本地资源缓存和全局资源缓存...
Mozilla, 网站扩展阅读全文
2013年02月08日
⁄ 架构
⁄ 被围观 4,485 views+
异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性、可维护性、健壮性都起到至关重要。
JAVA根据用处的不同,定义两类异常
* Checked Exception: Exception的子类,方法签名上需要显示的声明throws,编译器迫使调用者处理这类异常或者声明throws继续往上抛。
* Unchecked Exception: RuntimeException的子类,方法签名不需要声明throws,编译器也不会强制调用者处理该类异常。
异常的作用和好处:
1. 分离错误代码和正常代码,代码更简洁。
2. 保护数据的正确性和完整性,程序更严谨。
3. 便...
异常设计阅读全文
2012年12月22日
⁄ 推荐, 架构
⁄ 被围观 4,990 views+
开了自己域名的博客,第一篇就得来个重磅一点的才对得起这4美金的域名。作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的得满世界 看个遍才整理出个头绪,那咱就系统点的从头一步一步的说,一个从日几千访问的小小网站,到日访问一两百万的小网站,怎么才能让它平滑的度过这个阶段,别在 技术上出现先天不足,写给一些技术人员,也写给不懂技术的创业者。
对互联网有了解的人都有自己的想法,有人就把想法付诸实现,做个网站然后开始运营。其实从纯网站技术上来说,因为开源模式的发展...
阅读全文
2012年12月18日
⁄ 架构
⁄ 被围观 2,771 views+
csdn作为国内最大的程序开发社区,影响了足足一代人。它是国内优秀杂志《程序员》的网站,我从前非常喜欢《程序员》这本杂志,里面的文章都非常优秀,那时只有5元钱的我每个月花10块钱买本这样的杂志,看个三五年,都舍不得丢下。
但是今天观察了下csdn站点的架构,发现做的比较简单,看来开发者比较喜欢从程序着手,着重优化代码和数据库,对系统整体架构思考的时间不多。
我着重看了几个二级域名:www、news、bbs/community和blog,其中www、news这些静态文件都有通过squid缓存,用的app_squid架构,然后是dns...
2009, 架构阅读全文