SOA与微服务有什么区别

发布时间:2022-01-05 11:56:42 作者:iii
来源:亿速云 阅读:129

本篇内容介绍了“SOA与微服务有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

微服务是一种应用架构模式,而 RPC 是一种远程调用方式,它们是不一样的概念;而在微服务中会出现服务之间的调用,为了确保性能,我们一般采用 RPC 来调用。

我认为微服务架构用于业务较复杂或目前业务简单但将来有可能变得复杂的架构,建议视具体情况来确定合理的架构,不要为了微服务而去微服务。

微服务是SOA的一种轻量级的解决方案,其本质还是SOA,只是更容易落地而以。

对于满足以下条件可以考虑使用微服务:

1. 应用变得越来越大
2. 项目存在多种开发语言
3. 经典架构模式太重
4. 修改一个bug需要平滑升级
5. 需要对系统细粒度监控
6. 提升系统可用性,如果一个系统挂了,不会对整个业务产生致命影响

在微服务架构中,建议尽量避免服务之间的调用,因此服务粒度的切分是至关重要的;服务间的调用会产生分布式事务问题,建议采用“最终一致性”方法来确保分布式事务,业界有两种常用做法:CQRS 和 Event Sourcing。

事务补偿机制说简单点就是,在应用程序中通过代码的方式做到数据的还原。一般情况下,我们需借助消息队列与日志追踪等方式来实现。

1、微服务的事务控制本质上是分布式事务控制,建议使用“最终一致性”来确保。
2、在容错方面,需要有基础设施平台的支撑,比如服务网关的熔断机制
1. 微服务业务拆分可按整体业务组件来拆分,也可按单一业务功能来切分。建议切分步骤从粗到细,逐步细化,否则开始就过细,导致依赖性太高,增加复杂度。
2. 拆分服务时需降低彼此之间的耦合性,尽可能一个服务只做一件事情,即“单一职责原则”。

微服务的粒度控制取决于我们对业务的理解与把控能力,一切所谓的原则都是不靠谱的。

微服务需要考虑服务多版本问题,尤其是服务升级时,需要做到平滑,对整体系统没有任何影响。

“SOA与微服务有什么区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. SOA与基于CDIF的API联动
  2. 微服务与SOA:有什么区别?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

soa 微服务

上一篇:Java Spring AOP该怎么理解

下一篇:常见的微服务组件及概念是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》