精华内容
下载资源
问答
  • 微服务拆分原则

    2021-01-15 17:22:32
    文章目录微服务拆分原则 微服务拆分原则 拆分的大原则是当一块业务不依赖或极少依赖其它服务,有独立的业务语义,为超过 2 个的其他服务或客户端提供数据,那么它就应该被拆分成一个独立的服务模块 单一职责、高...

    文章目录


    微服务拆分原则

    拆分的大原则是当一块业务不依赖或极少依赖其它服务,有独立的业务语义,为超过 2 个的其他服务或客户端提供数据,那么它就应该被拆分成一个独立的服务模块
    
    1. 单一职责、高内聚低耦合:简单来说一张表划分为一个服务
    2. 服务粒度适中:服务不要太细(有的团队甚至一个接口一个服务)
    3. 以业务模型切入:比如产品,用户,订单为一个模型来切入
    4. 演进式拆分:刚开始不要划分太细,可以随着迭代过程来逐步优化
    5. 避免环形依赖与双向依赖:尽量不要做服务之间的循环依赖
    展开全文
  • 5 微服务拆分 5.1 微服务拆分原则 5.2 微服务改造

    5 微服务拆分

    5.1 微服务拆分原则

    在这里插入图片描述

    5.2 微服务改造

    在这里插入图片描述

    展开全文
  • 微服务拆分(1) 继上文提出“微服务边界如何划分”的问题后,后台有不少朋友留言,我也拉群组跟大家进行了相关讨论,总结如下: 使用微服务后,随着需求不断复杂化,微服务间边界越发不清晰,层次越发复杂,耦合...

    微服务拆分(1)

    继上文提出“微服务边界如何划分”的问题后,后台有不少朋友留言,我也拉群组跟大家进行了相关讨论,总结如下:

    • 使用微服务后,随着需求不断复杂化,微服务间边界越发不清晰,层次越发复杂,耦合日益严重,循环依赖问题比比皆是,以至于后期干脆直接推到重构;
    • 系统边界的划分,是架构师经验不断累积后的本能行为,不具有什么可言传性。

           整个讨论在大家吐槽完后,就没有结果地结束了。但事后仔细想想,我纠结的地方无非就是两个:

    • 1.服务的粒度如何划分,就如同上文中的案例一样,借款模块和还款模块是否应该划分在同一个模块中?
    • 2.服务间循环依赖、双向依赖的问题,应该如何避免。

            对于第一个问题,是一个无法度量的问题,粒度多细才是细,多粗才算粗,根本就是你说了算,而且,很多时候,并非够细或够粗就是好事情。

    • 当服务粒度过细时,服务间的层次结构会更复杂,进行编码时往往需要去对多个服务进行修改才能完成一个需求,这对于开发人员是一种很反感的体验。
    • 当服务粒度过细时,对系统部署是极大的考验。微服务给我们带来了分布式系统享有的好处,同时也带来了运维、部署难度增加的坏处。现在我们的服务不过10+,已经有同学开始抱怨部署太复杂。(当然,很大程度是因为我们没有发布系统)
    • 当服务粒度过粗时,服务内部的代码容易产生耦合。如果多人开发同一个服务,很多时候因为耦合会造成代码修改重合,开发成本相对也较高

            对于粒度的划分,李运华老师提出了以项目组开发人员的数量来划分粒度的想法,我觉得很认同。一个服务,应该以2-3个人(可以根据团队成员构成进行分组,以组概念来权衡数量)来维护比较妥当。也就是说,如果整个团队有5个人,服务数量应该控制在2-3个以内。当服务日渐复杂时,我们可以化整为零,分而治之。而拆分系统相对来说,比整合系统要更加简单(因为可以很好地找到服务边界)。

            第二个问题,服务间的复杂依赖关系如何管理。其实我们只要遵循一个基本原则:永远只有不同层级的单向依赖,就能让系统有一个清晰的依赖关系,因为单向永远不可能形成环状。也就是,高层服务可以依赖低层服务,同层服务间不互相依赖。如果出现了同层服务间依赖,就说明服务分层出现了问题,此时需要抽象出一个更高层次的服务或者提升其中一个服务的层次。       

     

    展开全文
  • 微服务拆分原则和方法

    万次阅读 2018-05-30 10:11:47
    1. 单一职责、高内聚低耦合2. 服务粒度适中3. 考虑团队结构4. 以业务模型切入5. 演进式拆分6. 避免环形依赖与双向依赖

    1. 单一职责、高内聚低耦合

    2. 服务粒度适中

    3. 考虑团队结构

    4. 以业务模型切入

    5. 演进式拆分

    6. 避免环形依赖与双向依赖

    展开全文
  • 微服务拆分微服务拆分时机为了快速迭代高并发场景可重用提交代码经常冲突小功能要积累到大版本才能上线服务拆分原则原则一:高内聚和低耦合。原则二:服务拆分正交性原则原则三:服务粒度适中、演进式拆分原则四:...
  • 微服务拆分参考原则列表

    千次阅读 2021-03-03 13:15:57
    微服务的设计过程中,微服务设计有多大,微服务粒度的把控,一直是设计人员需要考虑和设计的难点。 因为服务粒度设计过大,不能得到微服务架构带来的便利,例如:更加敏态的开发,更频繁的版本发布,由于服务功能...
  • 一个非常好的介绍微服务拆分理论和原则,并有具体案例详细说明的文档!
  • 分布式架构系统拆分原则、需求、微服务拆分步骤 为什么需要应用拆分 我以淘宝技术架构演进为例,淘宝从一个大系统工程向分布式架构演变过程,你就能很清楚的知道为什么要需要进行应用拆分。 1人员的角度。 ...
  • 微服务拆分原则和方法

    千次阅读 2019-04-19 18:35:40
    微服务拆分原则和方法 好的微服务架构具备的特征 1)易拆分; 2)易理解; 3)易扩展; 4)易修改; 5)易替换; 6)易部署; 7)易伸缩; 8)易恢复; 9)易链接; 10)易交付; 这些...
  • 微服务拆分原则 在微服务拆分中,核心需求在于拆开的微服务之间的联系越少越好,数据交互也是越少越好。因为微服务之间的数据一致性非常难处理,如果一致性方面的问题很少,整体做起来就比较简单了...
  • 拆分原则: 单一职责、服务粒度适中、考虑团队结构、以业务模型切入、演进式拆分、避免环形依赖和双向依赖拆分步骤: 分析业务模型、确定服务边界、模块拆分、数据库拆分...
  • 微服务拆分

    2021-01-03 23:30:14
    微服务拆分 对在线教室业务来说,包括用户服务、在线教室服务、行为牌服务、回放服务、课件服务、信令服务、监课服务、在线教室反馈等等 电子商务:用户服务User、商品服务Info、交易平台Trade、搜索服务Search、...
  • 微服务的拆分原则主要参考立方体中的Y轴,根据不同的业务划分 微服务拆分的要点: 高内聚,低耦合,每个服务完成具体的功能 根据团队划分,一个团队负责1-2个服务模块,进行快速的更新迭代 Y轴 Y轴扩展将一个庞大...
  • 微服务拆分策略

    2021-07-14 10:39:13
    微服务拆分策略: 业务先行,理清楚业务边界和依赖; 先有独立的模块,后有分布式服务; 模块之间的依赖关系要清晰、参数简单、耦合要少; 最重要的是需求,根据需求判断具体价值,再按价值建立设计原则,最后按照...
  • 微服务拆分之道

    2021-06-08 10:02:38
    简介: 随着项目功能增多以及规模增大,单体架构的缺点也随之显现,而微服务拆分即可解决这些问题。 作者:修治 背景 微服务在最近几年大行其道,很多公司的研发人员都在考虑微服务架构,同时,随着 Docker ...
  • 微服务拆分

    2018-09-06 18:23:48
    微服务拆分的起点 使用微服务架构模式的思想对目标系统进行拆分之前,我们需要先明白服务拆分起点和终点,以及需要考虑的因素与坚持的原则。所谓起点就是需要清楚拆分的是已有的项目还是新的项目,如果是已有的项目...
  • 为什么需要应用拆分 我以淘宝技术架构演进为例,淘宝从一个大系统工程向分布式架构演变过程,你就能很清楚的知道为什么要需要进行应用拆分。 1人员的角度。 维护一个代名工程Denali的百万级代码怪兽...
  • 软件模式-微服务拆分:按业务能力分解微服务场景基于业务分解的原则 场景 如果你正准备将你的单体架构(Monolithic architecture)应用改造为微服务架构,并希望使用微服务架构将应用程序构造为一组松耦合的服务。...
  • 大话微服务拆分

    2021-03-05 12:41:07
    一、AKF拆分原则 1,Y轴(功能)关注应用中功能划分,基于不同的业务拆分 2,X轴(水平扩展)关注水平扩展,也就是“加速器解决问题” 3,Z轴(数据分区)关注服务与数据的优先级划分,如按地域划分 二、前后端...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,090
精华内容 5,636
关键字:

微服务拆分原则