微服务实战:落地微服务架构到直销体系(什么是微服务)

职业培训 2025-12-03 13:52:06 57879

网上有许多关于微服务的微服务实微服务文章,从不同的战落维度对微服务进行了相关的叙述;有些建瓴高屋,有些触及细节,地微到直有些偏重理论,服务有些偏重代码,架构都是销体系十分不错的了解微服务的文章。

咱们这个系列的微服务实微服务文章的维度首要是实战落地,也便是战落咱们在往常作业以及产品开发进程中,考虑为什么挑选微服务架构风格,地微到直以及如何将微服务的服务架构风格落地到咱们实践的一个大健康职业直销电商体系的首要进程。本文触及有少数理论的架构部分,首要是销体系架构与完结的层面,让咱们真正对微服务能了解、微服务实微服务能知道、战落能完结。地微到直

本系列文章从“DDD实战进阶第一波”系列持续。假如你对咱们落地的体系的需求以及DDD不是特别了解的话,主张你先查看咱们DDD实战进阶第一波的文章,因为DDD是微服务架构风格的一个重要组成部分,并且本系列的需求和代码会紧接着DDD实战进阶第一波。

微服务这几年很火。其实一种概念或一种架构风格的鼓起,一定有它背面的原因。咱们在这里不讲所谓巨大上的理由,而是讲我经过将近18年的软件规划与开发作业,在有挑选性的成功运用了微服务架构风格的领会。

微服务架构风格的鼓起,首要是因为客户对现代化的产品和体系的需求,对软件开发自身提出了更高的要求。

1.服务独立性:

一个体系一般在规划时,架构师(或项目经理)会依据对需求的了解划分为规划上的多个边界上下文,每个边界上下文包含本边界上下文需求的范畴模型。在实践

开发进程中,会首要呈现以下几个问题:

a.多小组并行开发:在一个大型体系中,边界上下文会分给不同的开发小组进行开发。有些边界上下文之间在事务上有依靠联系,但咱们在技能上也做了依靠。比方订单边界上下文依靠产品边界上下文或客户边界上下文,这样一般要先完结被依靠的目标或功用(至少要先界说出来),才做依靠它的功用,影响开发的功率。

b.布置与运转的问题:因为存在依靠联系,所以被依靠边界上下文的组件发生改变时,该组件还要更新到依靠它的边界上下文中,办理杂乱。并且一旦被依靠的边界上下文呈现问题,依靠它的边界上下文也会呈现问题。服务独立布置到不同的主机或Docker上因为存在引证,也会对办理和布置上带来妨碍。

c.技能挑选的问题:因为技能上存在依靠联系(一般是经过引证),所以多个小组选用的技能一般是相同的。但在某些情况下,边界上下文应该选用最适合它的技能,并且边界上下文之间也不应该经过Restful风格的接口相互拜访。

2.高功能大并发:

现代的互联网运用,需求支撑许多用户的并发拜访操作,传统的经典开发方法,会首要呈现以下几个问题:

a.用例接口的直接露出:一般咱们会将功用露出成接口,而接口经过调用运用服务(运用服务和谐仓储和逻辑)完结用例功用,假如逻辑杂乱,数据库拜访负载大,特别该用例经过事务一起操作多个数据拜访上下文,速度会很慢,很长时刻才给前端回来成果,假如用户多,该问题会被扩大。

b.查询的问题:一个边界上下文除了用例的功用,一般咱们会有许多查询的功用供给给用户。一般咱们会将一个边界上下文的一切功用都做到一个Api项目中,别的事务和查询运用的模型是同一个,这样也会影响功能。

3.事情溯源与终究共同性:

在大并发的体系中,咱们不能运用事务来确保强共同性,因为这样会影响功能,咱们应该选用多边界上下文的终究共同性来确保数据的正确。

a.传统的经典开发方法,无法完结终究共同性的首要原因是没有记载一个目标改变前史的事情信息,所以当咱们在经过非事务一起更新多个边界上下文的数据时,当需求回滚先更新边界上下文的目标数据时,不知道该目标的前史状况,也就没办法复原。

b.事务单据的前史修正信息:一般在事务体系中,咱们有需求需求知道一个目标(比方一张单据)的前史修正记载时,因为没有记载事情数据,所以无法很好的盯梢目标的前史改变状况。

4.服务的高可用行:

现在对服务的高可用要求越来越高,咱们应该尽量确保运用供给的服务可用,否则会丢掉用户,形成事务丢失。服务的高可用一般会因为以下两个方面原因引起:

a.数据库服务或数据库down掉、数据拜访网络连接中止。

b.WebApi网络地址不可用、WebApi拜访负载大、对用户的恳求呼应反常。

为了处理上述的开发进程、布置进程以及运转进程中的问题,咱们需求一种新的架构风格来辅导产品的开发、布置与运转。这种架构风格便是微服务。微服务架构风格提出以下几个

要求来处理上述问题,并应对用户与商场对咱们的产品与软件提出的更高的要求。

1.经过构建EDA(事情驱动的架构)并结合音讯总线,处理服务独立性的问题。

2.经过构建CQRS(指令查询责任别离的架构)并结合音讯总线,处理大并发高功能的问题。

3.经过构建Event存储与复原的机制,完结事情溯源,处理终究共同性的问题,也处理事务上有目标前史状况获取需求。

4.经过数据库产品自身高可用行,弹性拜访完结数据拜访高可用;经过完结WebApi负载平衡、重试与断路器、Api网关与服务中心等方法,完结WebApi的高可用。

因而,我对微服务的界说是:微服务是一种架构风格,它旨在经过将一个大体系分解成多个小体系(DDD中的边界上下文),并经过一系列的架构主张,处理服务独立性、功能、事情溯源与终究共同、高可用性的需求,终究使多个边界上下文可以相互协作,组合成一个为用户供给高质量的服务的大体系。

本系列文章触及到的技能包含C#、Asp.net core、EF core、RabbitMq、Ocelot、Consul、Docker等。

本系列文章经过直销体系的实践事例,终究将完结如下的两个整体架构图,并将直销体系的事务连接到它们。

原文链接:https://www.cnblogs.com/malaoko/p/9279594.html

本文地址:http://pv8yes7.tricountyaudio.com/html/207c6499728.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

安然公司与韩医大学签订“产学研合作协议”

尚赫:让经典引领学生生长——“读具匠心”走进江山市长台小学

刺给力宣扬饮品可以抗癌?“拉人头”团队计酬”形式涉嫌违法违规

中秋|三生黄金宝请你喝秋天榜首杯肽养分饮料

天士力三款心脑血管创新药成功入选国家医保

热血践初心 绿之韵领航世界展开无偿献血活动

边旅行边挣钱?免费讲座卖奇特洗菜机?这些涉老圈套被查!

这本陈述 答复了玫琳凯的7个终极问题

友情链接