微服务架构与领域驱动设计应用实践

发布时间:2021-11-06 06:55 阅读次数:
本文摘要:文章泉源:松然聊技术 点击检察原文。 微服务架构的演进历程 可是随着架构的生长问题又接踵而来在没有做好界限的划分之前系统拆分的服务往往是松散的。正如《架构整洁之道》所讲:软件架构设计自己就是一门划分界限的艺术。 所以许多系统在这一阶段又往往举行了服务内聚和去条理化的演变历程。所谓服务内聚就是以领域驱动设计为原则重新界定领域界限对模块举行服务整合对系统举行合并。而去条理化则是去除服务条理崎岖之分按服务挪用最优链路提供服务请求降低深度以此保证系统的稳定性能。

亚博全站app登录

文章泉源:松然聊技术 点击检察原文。

微服务架构的演进历程

可是随着架构的生长问题又接踵而来在没有做好界限的划分之前系统拆分的服务往往是松散的。正如《架构整洁之道》所讲:软件架构设计自己就是一门划分界限的艺术。

所以许多系统在这一阶段又往往举行了服务内聚和去条理化的演变历程。所谓服务内聚就是以领域驱动设计为原则重新界定领域界限对模块举行服务整合对系统举行合并。而去条理化则是去除服务条理崎岖之分按服务挪用最优链路提供服务请求降低深度以此保证系统的稳定性能。

总结一下看从拆分到服务化的历程就是将原来一个整体的服务打碎碎成一块一块的琐屑服务然后再对服务重新归类、整合形成一个一个新领域的、独立的服务。如单体架构就像一个雄伟的城堡如果相对其中一个点举行调整和革新那么可能面临着牵一发而动全身的风险。

正是重心由外到内的转变让我认知到现在系统架构的生长许多系统架构的庞大度已经不是简简朴单通过引入一些新技术或框架就能降低系统庞大的。

它需要大大的提前对风险、问题、隐患的预知做到未雨绸缪。《从零开始学架构》书中提到:架构设计的生长历程就是在于降低软件系统庞大的历程。

本篇文章一共分为三个部门划分是微服务架构的演进历程、详细实践微服务的应用技术和领域驱动设计的意识转变。

微服务架构已经渗透到互联网应用的方方面面而领域驱动设计也逐渐被业界所吸收。

总结

拆分可以分为系统拆分、功效拆分和读写拆分。如一个单体系统中根据用户的交互场景看门户首页可以拆分为前台系统类目、商品、搜索等功效可以拆分到商品中心订单、结算、发票等功效则可以拆分到生意业务中心这就是简朴的系统拆分和功效拆分。

而有些功效较为特殊如商详页在读取时需要聚合读取所以又可以举行读写拆分。

微服务化拆分一定会在初期发生代码随处拷贝没有一套代码一定会造成庞大的扩散如同样语意的 A、B 两个接口如果 A 接口存在性能问题需要加缓存那么 B 接口也会存在同样的问题并需要同样的革新这样庞大度就会随处伸张同时也无法实现统一的服务层架构另有如果同样语意或相似语意的接口太多那么接口就是杂乱的无法实现有限接口的治理如果系统出了问题可能很难定位问题。业务逻辑是依赖于数据的如果接口是杂乱的那么慢 SQL 等质量差的 SQL 就无法举行有效收口革新同样就越发难以实现数据库拆分息争耦。综上服务治理的历程就是从无序到有序的历程。

当服务拆分的设计方案确认完毕而服务化的基础设施也部署到位那么系统往往一下子就会突然公布出成百上千个服务接口就像一个网络一样每个服务或微服务就像网中的一个节点相互之间关联和联系。可是服务网络应该被设计成为一个有向无环图否则就是一团麻。

如开始的时候只是 A 挪用 B但随着业务生长需要修改可是因为对 A 不相识就加个环节 B 挪用 A如此形成了环形挪用不仅逻辑庞大了还降低了稳定和性能。

领域驱动设计的意识转变

服务拆分

服务拆分并服务化之后是不是就完事了不!真正的微服务实践才刚刚开始简朴提供了一个接口是没有意义的它必须具备高可用、高性能、高并发的三高特性尤以高可用最为重要。保障服务高可用的方法有许多如数据异构、多级缓存、超时与重试、熔断、异步并发、降级、限流、消息行列、压测与预案等。

详细实践微服务的应用技术


本文关键词:亚博全站app官网登录,微,服务,架构,与,领域,驱动,设计,应用,实践

本文来源:亚博全站app官网登录-www.ftwsl.com

在线客服 联系方式 二维码

电话

0481-38160321

扫一扫,关注我们