当前位置: 首页 > news >正文

微服务6大拆分原则

微服务6大拆分原则

微服务拆分是指将一个大型应用程序拆分成独立服务的过程,在微服务拆分时,需要考虑以下6大微服务拆分原则

一、单一职责原则

微服务单一职责原则,是指每个微服务应该专注于解决一个明确定义的业务领域或功能,而不是试图处理多个不相关的功能。

图片

在微服务架构中,单一职责原则的重要性体现在以下几个方面:

1)易于维护

每个微服务专注于特定的功能或业务领域,使得服务的代码相对独立,易于维护。

当需要增加新功能或对某个功能进行修改时,只需关注该微服务,而不影响其他服务的运行。

2)解耦性

如果一个微服务接口有一个以上的职责,这些职责就耦合在了一起,这会导致脆弱的设计。

单一职责原则有助于降低服务之间的耦合度,因为每个微服务只关注一个功能,不会包含与其他功能相关的代码。

所以微服务之间的关联度较低,可以更灵活地独立开发、部署和扩展。

3)更好的团队协作

每个微服务的责任清晰明确,可以由专门的团队负责开发和维护,这种团队的划分也能够促进团队之间的合作和协作,提高开发效率。

二、适当微原则

使用微服务最重要的一点就是,微服务到底多微才算“微”,这个业界也没有一定的标准。

服务越小,微服务的独立性就会越高,但同时,微服务的数量也会激增,管理这些大批量的服务也将会是一个挑战。

所以,微服务也不是越小越好,最好结合服务拆分场景来考虑。

应逐步划分,持续演进,避免服务数量的爆炸性增长。

三、接口隔离原则

定义微服务之间的接口时,应该遵循接口隔离原则,确保接口足够简洁明了,不包含不必要的功能,减少耦合。

服务通过标准的接口隔离,隐藏内部实现细节,这使得服务可以独立开发、测试、部署、运行,以服务为单位持续交付。

尽量消除对其他服务的强依赖,这样可以降低沟通成本,提升服务稳定性。

四、避免影响产品原则

也就是说要一边做产品功能迭代,一边完成服务化拆分。

比如:优先剥离比较独立的边界服务,短信服务之类就是典型可独立的服务。

从非核心的服务出发减少拆分对现有业务的影响,也给团队一个练习、试错的机会。

五、具备可扩展性原则

在拆分微服务时,应该考虑到每个服务的独立扩展性,以满足不同的负载需求。

微服务拆分之后,由于服务是以独立进程的方式部署,所以服务之间通信就不再是进程内部的方法调用而是跨进程的网络通信了。

在这种通信模型下服务接口的定义要具备可扩展性,否则在服务变更时会造成意想不到的错误。

比如:微服务的接口因为升级把之前的三个参数改成了四个,上线后导致调用方大量报错。

针对这种情况,推荐做法服务接口的参数类型最好是封装类,这样如果增加参数就不必变更接口的签名,而只需要在类中添加字段就可以了。

这就是典型的针对微服务接口,具备可扩展性原则的场景之一。

六、容错性原则

在设计微服务时,应该考虑到服务的容错性,以避免单点故障导致整个系统崩溃。

相关文章:

  • Linux 下 Java 部署环境搭建与项目部署详细步骤
  • PyTorch 线性回归模型构建与神经网络基础要点解析
  • 【金仓数据库征文】学校AI数字人:从Sql Server到KingbaseES的数据库转型之路
  • 十六、统一建模语言 UML
  • cdn 是什么?
  • AIGC时代大模型幻觉问题深度治理:技术体系、工程实践与未来演进
  • LSP里氏替换原则
  • 全息美AISEO引领未来智能营销新趋势
  • 关键点检测--使用YOLOv8对Leeds Sports Pose(LSP)关键点检测
  • Kubernetes生产实战(十六):集群安全加固全攻略
  • 协议路由与路由协议
  • 数据库索引详解:原理 · 类型 · 使用 · 优化
  • 流式数据(Streaming Data)和非流式数据(Batch Data)区别、使用场景、优化-来自前端的浅解
  • Python常见面试题
  • AST(抽象语法树)与 HBO(基于历史的优化)详解
  • 单片机-STM32部分:11、ADC
  • 【C++】 —— 笔试刷题day_27
  • 电影感户外哑光人像自拍摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
  • 扩容 QCOW2 磁盘镜像文件
  • 人民日报刊文:加快解放和发展新质战斗力
  • 未来之城湖州,正在书写怎样的城市未来
  • 欧盟决意与俄罗斯能源彻底决裂之际,美国谋划新生意:进口俄气对欧转售
  • 长江画派创始人之一、美术家鲁慕迅逝世,享年98岁
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • 开局良好,我国第一季度广告业务收入保持较快增速