单体巨石、微服务和SOA关系与区别

18-10-08 banq
              

微服务是通过否定单体巨石monolithic而诞生的,单体巨石意思是铁板一块,高度耦合在一起,如同搅拌在一起的意大利面,或者说拌面,代码之间纠缠不清,修改维护难度很大,难以增加新功能,而微服务是根据业务领域中自然形成的聚合进行切分,也就是说,微服务不是对单体随意一刀切进行分割,而是根据有界上下文,在上下午边界出进行切割,不但形成模块化,而且通过微服务运行架构进行彼此最大化的松耦合。

单体是设计上统称,具体架构可能是MVC应用或SOA应用,SOA主要是以粗粒度的大服务为主,这样的服务才能重用,但是包罗万象的大服务也很可能是高度耦合的单体,上帝式的对象,包括上帝全包的大服务,或领域模型对象,都是单体的特征。