教你简单理解分布式与传统单体架构的区别
分布式是一种系统架构方式,而在分布式系统中一般基于中间件进行开发,消息中间件是分布式系统中比较核心的中间件之一。这三样东西随便拿出一个来都可能要说上半天,而且个人水平有限,所以这里我也只能按照个人的理解简单说一下。
分布式是区别于传统的传统的单体架构而言的。
下面以小作坊和大工厂为例简单说一下。
小作坊就相当于是传统的单体架构
一般来说,小作坊人手比较少,甚至只有一个人,那么其中所有的工作都要由他一个人负责,从接收订单,到采购原料,再到生产,还有财务都需要他一个人来做,但毕竟每个人的精力有限,一个人的小作坊能够承接的业务量也就很有限。如果这个人生病了,那整个作坊就无法运转,无法提供任何服务。另一方面,随着新东西的出现,总需要扩增一些新的产品线,那小作坊的负责人就必须自己去学习,而且能够学到的东西也有限,无法扩展太多的产品线。单体架构与小作坊的生产模式类似,存在的缺陷也类似,单体架构的系统吞吐量差,故障影响范围大,扩展性差,开发成本高,不适用于现在大多数的互联网系统。
随着业务的增长,小作坊已经处理不了大量的订单,为了能够继续发展,只能改变工作模式,开始招兵买马。
其中每个人都有自己的职责,有负责接收订单的,有采销,有技术工人,有财务,而且每个岗位都由一个多人小组来负责,这样即使小组中有人离职或者生病请假,都不会对整个业务造成任何影响,仍然可以正常运转。当订单量增加,现有人手处理不过来的时候,只需要再招一些人就可以了。
如果需要开辟新的产品线和开展新业务,那么只需要再培训或者招聘一批专业的技术人员即可。
分布式系统的架构就与大工厂类似
分布式系统吞吐量大大提升,同时具有故障影响范围小,易于扩展,开发成本低等诸多优点。但这也并不意味着分布式架构就很完美,与小作坊相比,大工厂员工很多,因此就带来了很高的管理成本,以及沟通成本,如何维持员工之间的信息对等以及如何保证商业机密不泄露等都是比较大的问题。同样,分布式系统对于系统运维,服务治理与调度,数据同步以及系统的安全性有很高的要求。
总的来说,两种架构各有各的优点,不能简单的说好与不好,只有合适不合适,下面的表格中简单列举了两种架构之间的差别。像个人博客,这种访问量比较小,功能比较单一的使用单体架构就足够,而电商和金融这种访问量高,比较复杂的系统更适合用分布式系统架构。