是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战
了解狭义和广义服务化的概念
几种常见的说法
- 微服务是服务化的子集:微服务是去掉ESB后的SOA
- 微服务是服务化的一种实现:SOA是一种架构思想,微服务是其一种实现方式,如:利用http 代替ESB
- 微服务与服务化是2种不同的架构思想:微服务与SOA仅仅是概念类似,本质上是2种架构
服务化诞生的背景
为什么需要服务化(即SOA)?
SOA诞生于上世纪90年代,1966年Gartner的两位分析师Roy W.Schulte 和 Yefim V.Natis 发表了第一个SOA的报告,主要针对企业内部的IT系统重复建设且效率低下的场景,用于打通企业内部多个异构系统,完成系统复用
服务化概念
什么是SOA ?
SOA的全称是Service Oriented Architecture 它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA的核心概念
- 服务
所有业务功能都是一项服务,服务就意味着要对外提供开放的能力,当其他系统需要使用这项功能时,无须定制化开发
- ESB
ESB将企业中各个不同的服务连接在一起,SOA使用ESB来屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通
- 松耦合
松耦合的目的是减少各个服务间的依赖和互相影响
SOA的问题
- SOA的目的是打通并复用企业中已经存在异构系统
- 在兼容异构系统方面,ESB引入额外的复杂性
- ESB逐渐成为系统的性能瓶颈,造成拓展困难
- 服务拆分粒度未明确,缺乏可落地的指导建议
了解微服务与服务化的区别
注意:微服务和SOA是2种不同的架构思想
了解构建微服务常见的误区
- 采用了Spring cloud 全家桶的技术架构就是微服务
- 微服务是当前最好的技术,我们一定要从微服务开始
- 微服务重点是“微” ,服务一定要拆的足够细
- 只有先构建好微服务的组件,才能实施微服务
更好地构建微服务
合理拆分服务粒度:服务拆分粒度不能过大也不能过小,要按照一定的原则合理拆分
完善微服务基础设施:服务治理是构建微服务重要一环,没有完善的基础设施将无法发挥微服务的作用 ,反而陷入泥沼
演进式发展,不急躁:微服务不是银弹,要结合业务和团队实际情况合理运用(谨慎入坑),微服务拆分和基建完善不是一蹴而就