服务端关注的是高并发,高可靠,易运维,一致性。通俗来讲就是少花钱,多办事,少犯错,易养活。从工业生产角度来看,流水线是比较符合要求的。流水线将复杂的生产流程拆成简单的子流程,将这些子流程串行化,虽没有改变单个产品的生产时间,但提高了并发度。在流水线饱和态下,子流程实际是并行化的,所以并发度提高,进而,大大提升生产效率。同时,由于工人的劳动简化并重复化,工人的效率也得到大副提升。另外,对于维护而言,一个子流程升级了,对上下游并不需要做改变。从技术角度来看,这也降低了技术的培训成本。
所以,服务端采用流水线技术对于提高生产效率是不言而喻的。此时,一个新问题出现了:如何划分子流程,即服务单元?
这有点仁者见仁,智者见智了。不过,大的分类还是有的。服务单元通常可以分为业务单元,存储单元,计算单元,缓存单元,网络单元,安全单元,调度单元等几大类。
我们在市场上能够找到与这些单元对应的生产资料。比如,php对应业务单元,数据库和文件系统对应存储单元,缓存单元则有memcached等,而调度单元则可以由nginx负责。网络单元可以是dns,也可以是抓取器,或者其他网络相关的。
从上面例子也可以发现,流水线也是有益于生产资料的蓬勃发展的。