微服务架构分析4:实施微服务架构的优势与技术挑战

微服务架构分析4:实施微服务架构的优势与技术挑战目录一 微服务架构实施的前提二 微服务实施的三大模式三 实施微服务架构的优势 一 六大技术优势 二 业务与组织优势四 实施微服务面临的挑战 一 技术架构的挑战 二 研发过程的挑战参考书籍 文献和资料 一 微服务架构实施的前提如图 MartinFowler 结石的生产率和复复杂度的关系 可以看出 1 当复杂度较小时 采用单块系统的生产率更高 微

目录

一、微服务架构实施的前提

二、微服务实施的三大模式

三、实施微服务架构的优势

(一)、六大技术优势

(二)、业务与组织优势

四、实施微服务面临的挑战

(一)、技术架构的挑战

(二)、研发过程的挑战

参考书籍、文献和资料:


一、微服务架构实施的前提

如图,Martin Fowler结石的生产率和复复杂度的关系。可以看出:

1.当复杂度较小时,采用单块系统的生产率更高,微服务架构反而可能降低生产率。

2.当复杂度达到一定规模时,无论单块系统还是微服务架构都会降低生产率,但是单块系统会面临急剧下降的情况,而微服务架构相对平稳。

3.我们发现有一个明显的拐点存在,但是并没有量化这个拐点的具体大小,也就是说系统或代码的规模达到具体多大适合进行微服务的拆分,这个需要各个团队因地制宜。

4.只有当出现这个拐点时对系统进行微服务化的拆分才是合适的方案,服务的合理拆分是实施微服务架构的一大前提。

5.微服务的实施需要基础设施自动化,这和服务规模有关,从开发之后的构建、测试、部署都需要高度自动化的环境来支撑才能有效降低边际成本。

微服务架构分析4:实施微服务架构的优势与技术挑战

二、微服务实施的三大模式

1.典型模式:从一个单块系统开始逐步转变到多个维度的微服务架构。

2.从无到有的实施,但是小系统没有必要直接采用微服务架构。

3.混合式,微服务架构很容易与现有系统并存,微服务与遗留系统的易整合性也是采用微服务的一个主要原因。

三、实施微服务架构的优势

基本优势可如图分析:                                   

微服务架构分析4:实施微服务架构的优势与技术挑战

实际例子举例,如图:

微服务架构分析4:实施微服务架构的优势与技术挑战

(一)、六大技术优势

1.组件化方案:高内聚,低耦合;

2.技术自由度:每个微服务高度独立,可以采用适合自身开发团队和技术体系的工具和框架来实现某个微服务;

3.可扩展性:单个微服务在保证通信方式不变的情况下,对其内部功能和技术的改变不会对外部依赖它的服务产生任何影响;

4.可伸缩性:注意可以伸缩的前提是对系统有合理的划分,高扩展往往能够带来高可伸缩性;

5.有效应对遗留系统:微服务时改造遗留系统的强有力武器,只要可以获得遗留系统的暴露接口,微服务架构就能与之进行通信并完成功能整合。

6.持续可交付:简单、可重复流程确保软件发布过程的可靠性。

(二)、业务与组织优势

康威定律,组织形式等同于系统设计,直白的说就是,你想要什么样的系统就搭建什么样的团队。

举例:原有的功能团队—————–微服务架构的自治性组织文化(大系统变为小系统、小产品)

1.消除过程浪费

可采用产品开发周期与成本之间的关系开分析:明确的边界有助于减少团队之间的扯皮现象,提升开发效率。

微服务架构分析4:实施微服务架构的优势与技术挑战

2.快速产品开发

通过技术创新缩短同行产品开发周期,具体分析如图:

微服务架构分析4:实施微服务架构的优势与技术挑战

四、实施微服务面临的挑战

(一)、技术架构的挑战

1.去中心化与平衡:去中心化的思想意味着微服务之间不需要共享技术,然而缺少通用技术体系同样会加剧系统的复杂度,当从统一发布和运维等角度去看待整体系统时,这种技术复杂度可能会是一个问题,需要进行平衡。

2.服务版本控制:提倡为每个微服务建立版本并根据业务迭代更新版本,那么需要考虑在多版本更新频率很高时,应充分思考如何正确管理服务版本。

(二)、研发过程的挑战

1.需求的边界:如何确定业务功能的粒度、如何把非功能性需求分解到各个微服务中、如何从系统整体上把握需求的优先级等;

2.引入变化:当微服务架构被引入时,依旧需要做很多事情,因为我们所提到的各种技术、架构和过程的挑战需要我们跟踪和协调。

 

参考书籍、文献和资料:

【1】郑天民. 微服务设计原理与架构. 北京:人民邮电出版社,2018.

【2】Sam Newman. 微服务设计[M]. 崔力强,张骏译. 北京:人民邮电出版社,2016.

【3】 MartinLAbbott, MichaelT.Fisher. 架构即未来:现代企业可扩展的Web架构、流程和组织[M]. 陈斌译. 北京:机械工业出版社,2016.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204086.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:02
下一篇 2026年3月19日 下午9:03


相关推荐

  • 在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程

    在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程

    2026年3月15日
    1
  • Windows常用脚本合集

    Windows常用脚本合集Windows常用脚本合集问题描述因为使用windows一些常用命令需要手动操作,比如启用ssh链接,要先使用win+r输入cmd再输入ssh,有时候甚至ssh命令容易忘记,还需要查看帮助,所以特此集合了一些常用命令软硬件描述操作系统windows10笔记本电脑使用方法创建文件xx.bat再【常用shell】中把代码复制到xx.bat中保存即可,然后双击使用常用shell禁用笔记本电脑自带的键盘,这个功能可以防止使用外接键盘时误触笔记本自带键盘。需要重启电脑后生效,慎重%1m

    2022年7月15日
    40
  • 人事档案管理系统总结(二)—用文档和客户交流

    人事档案管理系统总结(二)—用文档和客户交流2013 年 8 月 21 日 又有一次去人才市场给客户发布了人事档案管理系统 但是这一次去不在是以前那样带着沉重和害怕的心情去了 这次去是带着轻松的心情去了 因为是带着开发小组人员一个多月的辛劳汗水去的 而且这些辛劳汗水能够他们看见的 nbsp nbsp nbsp nbsp nbsp 带着开发小组做好系统和客户打交道的时候 常常会出现以下几种情况 nbsp nbsp nbsp nbsp nbsp 1 客户把上一次提出的

    2026年3月19日
    2
  • acwing-1172. 祖孙询问(最近公共祖先)「建议收藏」

    acwing-1172. 祖孙询问(最近公共祖先)「建议收藏」原题链接给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 m 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x 与 y 的祖孙关系。输入格式输入第一行包括一个整数 表示节点个数;接下来 n 行每行一对整数 a 和 b,表示 a 和 b 之间有一条无向边。如果 b 是 −1,那么 a 就是树的根;第 n+2 行是一个整数 m 表示询问个数;接下来 m 行,每行两个不同的正整数 x 和 y,表示一个询问。输出格式对于每一个询问,若 x 是 y 的祖先则输

    2022年8月9日
    9
  • 千百撸

    千百撸千百撸(黄网)

    2022年8月2日
    26
  • Mybatis分页插件&注解模式

    Mybatis分页插件&注解模式Mybatis 分页插件 1 分页插件的依赖 dependency groupId com github pagehelper groupId artifactId pagehelper artifactId version 5 1 10 version dependency 2 在核心配置文件中配置分页查询 3 分页代码

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号