SOA和微服务区别详解(5大核心区别)

文摘   2024-10-29 17:08   四川  

关注mikechen的架构笔记十余年BAT架构经验倾囊相授


大家好,我是mikechen。

SOA/微服务很多同学傻傻分不清楚,下面详解5大SOA和微服务区别@mikechen

最新mikechen原创超30万字《阿里架构师进阶专题合集》和《最全大厂面试题及答案总结》,请关注本公众号【mikechen的架构笔记】,后台回复:资料,即可领取。

服务粒度不同

SOA中的服务通常较大,可能涵盖多个功能模块,旨在实现业务流程的集成。

并且,服务之间的边界不够清晰,可能导致服务之间的依赖关系复杂。

而微服务,服务粒度更细,每个微服务专注于单一功能、或业务能力,鼓励松耦合。

并且,每个微服务具有明确的边界,可以单独开发、测试、和部署,降低了系统的复杂性。

 

核心设计不同

SOA通常采用统一的技术栈和标准,以确保所有服务之间的兼容性和互操作性。

这通常包括一套共同的工具、框架和协议,比如:SOAP、WSDL、和XML...等等。

而且,SOA常常依赖于企业服务总线(ESB),(ESB)企业服务总线作为服务间的通信层。

ESB提供了一种集中式的方式来管理服务之间的消息传递、数据转换和协议适配等。

这可能限制了不同服务的技术选择,因为它们需要兼容ESB的技术和协议。

相反,微服务架构鼓励使用多种技术栈,每个微服务可以选择最适合其功能的编程语言、框架、和数据库。

并且,微服务通常使用RESTful API、gRPC...等轻量级协议进行服务间的通信,这使得服务之间的交互更加简单、和高效。

 

服务独立不同

每个微服务可以独立部署、和管理,而且,也可以选择合适的工具、和框架。

例如,某个服务可能使用Node.js、和GO,而另一个服务则可能使用Java、和PHP等等,这种独立性允许团队根据特定需求进行优化。

而SOA,企业服务总线(ESB)提供了一种集中式的方式来管理。

比如:服务之间的消息传递、数据转换、和协议适配...等,这可能限制了不同服务的技术选择。

 

部署方式不同

在SOA中,服务通常通过统一的部署流程进行管理,可能需要同时更新多个服务。

这种集中式部署可能导致整体系统的停机时间较长,影响业务连续性。

而微服务架构,支持独立的服务部署,允许不同服务在不同的时间进行更新。

这使得系统能够实现持续交付,快速响应业务变化,降低风险。

 

核心应用不同

SOA中的服务通常较大,覆盖多个业务功能,适合复杂的企业级集成。

SOA由于服务粒度较大,服务的管理、和维护通常较为复杂,比如:修改一个大服务可能会影响到多个业务流程和系统,增加了更新的风险。

而微服务则强调小粒度、专注于单一功能,适合快速迭代、和响应变化。

小粒度的服务使得每个服务的管理、和维护相对简单,团队可以专注于特定功能,快速响应需求变化。

以上


最后送大家一个福利:

送我原创超30万字阿里架构师进阶专题合集


以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。


需要以上架构专题&面试答案的同学,加我微信即可领取!


添加时备注:资料






mikechen的架构笔记
十余年BAT架构经验倾囊相授!
 最新文章