SOA(Service-Oriented Architecture)即面向服务架构。
什么是服务?服务三要素:服务提供方、服务内容、服务对象。以商店为例:
-
服务提供方——商店
-
服务内容——商品
-
服务对象——消费者
当前软件SOA发展的3阶段:无服务、服务化、微服务。还是以商店为例:
-
无服务——没有商店
-
服务化——综合商店
-
微服务——垂直商店
无服务——没有商店
人们不仅要工作挣钱,还要奔波购买日常所需,啥都自己搞,穷困潦倒!
对应到软件(以Web系统为例),又要处理业务逻辑,又要多方获取数据
问题:
-
功能堆叠,代码臃肿——拓展性低;
-
系统复杂,高度耦合——维护性低;
-
一招不慎,集体宕机——容灾性低。
服务化——综合商店
商店负责提供日常所需,其他人专心工作,分工明确效率高,但是商店一关门,搬砖会分神!
对应到Web系统,系统拆分成多个环节,每个环节对独立的功能
优势:
-
职责分明——拓展性高;
-
逻辑清晰——维护性高。
问题:
-
单点阵亡,集体凉凉——容灾性低。
微服务——垂直商店
生鲜店、服装店、母婴店等等遍地开花,就算部分商店关门,人们的生活也不会受到太大的影响
对应到Web系统,单个系统出现问题,业务依然可以跑下去
优势:
-
职责分明——拓展性高;
-
逻辑清晰——维护性高;
-
多点支撑——容灾性高。
如果说知识来源于生活,那么SOA估计是来自小卖铺!