SOA与微服务的区别是:1、首要目标不同;2、服务依赖不同;3、服务规模不同;4、架构不同。微服务是一种架构设计模式。在微服务架构中,业务逻辑被拆分成一系列小而松散耦合的分布式组件,共同构成了较大的应用。每个组件都被称为微服务,而每个微服务都在整体架构中执行着单独的任务,或负责单独的功能。
一、SOA与微服务的区别
1、首要目标不同
SOA首先要解决的是异构应用的服务化;微服务强调的是服务拆分尽可能小,较好是独立的原子服务。
2、服务依赖不同
传统的SOA服务,由于需要重用已有的资产,存在大量的服务间依赖;微服务的设计理念是服务自治、功能单一独立,避免依赖其他服务产生耦合,耦合会带来更高的复杂度。
3、服务规模不同
传统SOA服务粒度比较大,多数会采用奖多个服务合并打成war包的方案,因此服务实例数比较有限;微服务强调尽可能拆分,同时很多服务会独立部署,这将导致服务规模急剧膨胀,对服务治理和运维带来新的挑战。
4、架构不同
微服务化之后,服务数量的激增会引起架构质量属性的编号,例如企业集成总线ESB(实总线)逐渐被P2P的虚拟总线替换;未来保证高性能、低延时,需要高性能的分布式服务框架保证微服务架构的实施。
延伸阅读:
二、什么是微服务
微服务是一种架构设计模式。在微服务架构中,业务逻辑被拆分成一系列小而松散耦合的分布式组件,共同构成了较大的应用。每个组件都被称为微服务,而每个微服务都在整体架构中执行着单独的任务,或负责单独的功能。每个微服务可能会被一个或多个其他微服务调用,以执行较大应用需要完成的具体任务;系统还为任务执行——比如搜索或显示图片任务,或者其他可能需要多次执行的任务提供了统一的解决处理方式,并限制应用内不同地方生成或维护相同功能的多个版本。
使用微服务架构还提供这样一种机制:增加新加入开发者的生产效率,并减少新功能的推广时长。每个微服务的代码库与相关工具集都很有限;开发者无需再去了解庞大而复杂的系统,只需理解自己所做的那部分微服务相关子集,便能贡献生产力。由于无需考虑应用的现有部分使用了什么语言或工具集,或者较大应用的其他开发者是否了解这些语言和工具,只需使用当前任务最趁手的工具,因此微服务开发起来非常迅速。
以上就是关于SOA与微服务的区别的内容了,希望对大家有帮助。