http://www.cnblogs.com/hh54188/p/6371578.html
一个怎样的后端服务才能算得上优秀?或者放低身段说合格?再把这个问题翻译翻译,优秀或者合格的标准是什么?
假设现在需要你用NodeJS搭建一个http服务,我猜测你会借助express框架用不到10行的代码完成这项工作。不能说这么做是错的,但这样简易的程序是脆弱的:一旦部署上线之后,可能瞬间就被大量涌入的请求击垮,更不要提各种潜在的漏洞危险。退一步说,即使线上程序经过了这一关考验,如果你要更新程序怎么办?不得不让用户中断访问一段时间?
在我看来,后端服务务必要满足两条特性:
- 能容错(Fault tolerant)
- 可扩展(Scalability)
当然还有一些其他特性也很重要,比如程序要健壮,接口设计要友好,程序修改起来要灵活等等。但容错性和拓展性才是正常运行的基本保障,至少保证了你的服务是可用的,永远是可用的。而无论实现服务的代码如何优雅,它都是为业务服务的,一旦用户无法访问你的服务了,再优美的代码也无济于事。所以接下来的问题就是,我们后端程序的架构如何的设计以保证满足这两条特性呢?