服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

一文读懂微服务架构的分解设计!

日期: 来源:架构文摘收集编辑:点击关注 


作者:MicroStone123
来源:https://www.jianshu.com/p/b44386418a9d

上一篇: 图解 SQL 的执行顺序,优雅



如果您在设计大型并发应用程序或者准备拆解之前的老系统时,我想你第一考虑的是微服务架构方式。

前面我们了解到微服务架构将应用程序构建为一系列松散耦合的服务,是为了通过实现持续交付和灵活部署来加速软件开发。

出于很原因,分解很重要

  • 有利于分工和知识共享。使用它,具有特殊知识的多个人(或团队)可以在一个应用程序上高效地合作。

  • 它描述了多个元素如何交互。

在微服务下,有两种类型的项目

  1. 待重新开发项目—国外译名:Brownfield projects,是指在现有或遗留系统的背景下开发和部署新的软件系统。因此,将单体应用程序转换为微服务是属于这种类型项目。

  2. 新建项目——是指从头开始为一个全新的系统,而无需使用任何遗留代码。当您从头开始时,没有任何限制或依赖性。

一、按业务能力模式分解

为了创建微服务架构,一种策略是基于业务能力进行分解。作为一家企业,项目是为了创造价值。例如,在电子商务业务中,订单管理、库存管理、支付、运输等都涉及。

这种模式有以下好处

  1. 业务能力比较稳定,架构依赖的业务逻辑比较稳定。

  2. 开发团队是跨职能的、自主的,并且围绕交付业务价值而非技术特性进行组织。

  3. 服务是松散耦合和内聚的。


二、按子域模式分解

领域驱动设计 (DDD) 方法是一种构建复杂软件应用程序的方法,它基于面向对象领域模型的开发。DDD 为每个子域定义了单独地域模型。每个子域都属于一个域。识别子领域与识别业务能力的过程比较相似,即分析业务和识别专业领域。最有可能的是,大多数是业务熟悉的子域。领域模型的范围在 DDD 中称为有界上下文。有界上下文包括实现模型的代码组件。


子域可以分类如下

  1. 核心—业务的最大差异化因素和应用程序最有价值的部分,在一些公司经常有核心系统项目,有核心报价子系统,核心定价子系统等

  2. 支持—不是差异化因素,而是与业务提供的内容相关。通常在内部或外包实施。

  3. 通用—不特定于业务,最好使用现成的软件实施。

这种模式有以下好处

  1. 子域职能比较稳定,架构相对也比较稳定。

  2. 开发团队(通常会设计到组建虚拟团队)是跨职能的、自主的,并且专注于交付业务价值而不是技术特性。

  3. 服务是松散耦合和内聚的。

三、将单体应用程序分解为微服务时的挑战

在分解单体应用程序时,可能会出现挑战。

  1. 网络延迟—在分布式系统中,网络延迟是一个持续关注的问题。您可能会发现对服务的特定分解会导致两个服务之间的大量往返。

  2. 数据一致性—每个服务都有自己的数据库,因此维护跨服务的数据一致性会非常困难。

  3. 神类(捂脸哭一下)—神类是控制系统中太多其他对象的对象,它超越了逻辑,成为了无所不能的类。由于其规模和复杂性,它是一个集中系统智能的类,并使用来自其他类的信息。

四、扼杀者模式

将遗留的单体应用程序迁移到微服务架构时,会使用 Strangler 模式。通过用新服务替换特定功能,可以使用这种模式逐步转换单体应用程序。新服务一旦准备好,旧组件就被扼杀,新服务投入使用,而旧组件退役。

单体应用最终会缩小功能,而微服务将接管整体功能。另外,搜索公众号Linux就该这样学后台回复“猴子”,获取一份惊喜礼包。





END


架构师交流群

 「架构君」建立了读者架构师交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起交流学习。

扫描添加好友邀你进架构师群,加我时注明姓名+公司+职位】



强势开源一款小程序!

2021-11-07

强力推荐一个完善的物流(WMS)管理项目(附代码)

2021-10-23

推荐一个 Spring Boot + MyBatis + Vue 音乐网站

2021-10-19

分享一套家庭理财系统(附源码)

2021-09-20

推荐一个互联网企业级别的开源支付系统

2021-09-04

推荐一套开源通用后台管理系统(附源码)

2021-08-21

一款神仙接私活儿软件,吊到不行!

2021-07-31

基于 SpringBoot 的仿豆瓣平台【源码分享】

2021-07-18

干掉 Wordpress!这个开源建站神器有点吊!

2021-06-18

从朋友那里搞了 20 个实战项目,速领!

2021-06-12




如有收获,点个在看,诚挚感谢

相关阅读

  • 诺基亚 60 年巨变,这次要王者归来?

  • 诺基亚换 LOGO 了?老狐发现,最近诺基亚悄咪咪地把自己的 LOGO 换了。诺基亚宣布,计划在近 60 年来首次更改其品牌标志 LOGO,使用全新标志,从而匹配公司专注于积极增长的目标。从
  • GMV增速接近社零,阿里核心不再先进?

  • 出品|新立场NewPosition原创作者|K K编辑|李 凡2月23日美股盘前,阿里巴巴公布截至2022年12月31日的2023财年Q3业绩。财报数据显示,阿里第三财季营收2477.6亿元,略高于市场预期的24
  • 抖音开始变慢了

  • 01抖音放慢了节奏一路狂飙、大力出奇迹的抖音,终于开始降速了。近日,字节跳动现任掌门人梁汝波发内部信,其中宣布了两件重要的事情。第一,宣布调整目标制定和回顾的周期,把原来的
  • 运营人如何用好数据分析驱动业务增长

  • ▲点击上方卡片关注我,回复“百科全书”,即可获得共 117 页,3W+字,55 篇内容《运营人百科全书.PDF》电子版(直接送,无任何转发套路)本文来自饼干哥哥(三节课&知乎签约讲师,在职数据分
  • 从应用到算力,ChatGPT点燃基础设施需求

  • 摘要ChatGPT用户数快速增长,需求量火爆引发宕机。ChatGPT自发布以来用户数量快速增长。在庞大用户群涌入的情况下,ChatGPT服务器2天宕机5次,火爆程度引人注目的同时也催生了对
  • 产品是否有涨价趋势?木林森公开回应道…

  • 近日,木林森股份有限公司(股票简称:木林森 股票代码:002745)接受天风证券、西藏东财基金、华杉投资等机构现场调研,并就投资者们关心的“未来发展规划”“植物照明业务”“朗德万
  • 全球化趋势下,如何建设稳定高效的技术能力?

  • 作者 | 任传英如果将全球化比作一场航行,每个期望走出去的企业都是水手,那么是造一艘属于自己的船,还是搭乘已有的船呢?在不同的时间和场景下,相信每个水手都有自己的答案。近几

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 一文读懂微服务架构的分解设计!

  • 作者:MicroStone123来源:https://www.jianshu.com/p/b44386418a9d上一篇: 图解 SQL 的执行顺序,优雅如果您在设计大型并发应用程序或者准备拆解之前的老系统时,我想你第一考虑的
  • 最易懂的Prometheus告警原理详解

  • 通俗易懂的一篇文章,主要介绍了 Prometheus 什么时候告警,什么时候不会告警。同时介绍了 Prometheus 告警原理。警报是监控系统中必不可少的一块, 当然了, 也是最难搞的一块.
  • 金三银四面试真题(必看)

  • 前两个月,公司java岗位面了50+候选人,面试下来发现几类过不了的情况,分享大家防止踩坑:新技术倒是掌握得挺多,基础的却一塌糊涂。工作多年,从未学习过工作之外的技术栈,也没有对技
  • 百度工程师浅谈分布式日志

  • 作者 | 文库基础架构导读 introduction我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的
  • ES+Redis+MySQL,这个高可用架构设计太顶了!

  • 来源:dbaplus一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须
  • 国内最流行的缓存框架,它排第一!

  • 最近面试的、跳槽的一波又一波,学习群里也异常活跃,很多小伙伴在里面反馈问题,一起复盘,还是很有收获的。有面了十多家一二线互联网公司的卷王谈到,发现在Java后端面试中,Redis是