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

【云原生】云原生架构的反模式

反模式

  • 引言
    • 庞大的单体应用
    • 单体应用硬拆为微服务
    • 缺乏自动化能力的微服务

引言

技术是都有 两面性,企业在信息化过程中,在进行云原生演化时,会出现过分云原生而不根据系统的实际情况,在此举出一些典型的云原生架构反模式的例子,希望后续的开发过程中不要犯错误。

庞大的单体应用

庞大单体应用的最大问题在于缺乏依赖隔离,包括代码耦合带来的责任不清,模块间接口缺乏治理而带来的变更范围影响扩散,不同模块间的开发进度和发布时间要求难以协调,一个子模块不稳定导致整个应用都变慢,扩容时只能整体扩容而不能对达到瓶颈的模块单独扩容等。因此当模块可能存在多人开发时,就需要考虑通过服务化进行一定的拆分,梳理聚合根,通过业务关系确定主要的服务模块以及这些模块的边界,清晰定义模块之间的接口,并让组织关系和架构关系匹配。

单体应用硬拆为微服务

服务的拆分需要适度,过分服务化拆分反而会导致新架构与组织能力不匹配,让架构升级得不到技术红利,典型的例子有:

  1. 小规模软件的服务拆分:软件规模不大,团队人数不少,但为了微服务化,强行把耦合度高,代码量少的模块进行服务化拆分,一次性的发布需要拆分为多个模块分开发布和维护。
  2. 数据依赖:服务虽然拆分为多个,但是这些服务的数据是紧密耦合的,于是让这些服务共享数据库,导致数据的变化往往被扇分到多个服务中,造成服务间数据依赖。
  3. 性能降低:当耦合度强的模块被拆分为多个微服务后,原来的本地调用变成了分布式调用,从而让相应时间变大上千倍,导致整个服务链路性能急剧下降。


http://www.mrgr.cn/news/43340.html

相关文章:

  • dll动态库加载失败导致程序启动报错以及dll库加载失败的常见原因分析与总结
  • 今日指数项目个股描述功能实现
  • 弧形导轨驱动器高效使用技巧!
  • 双十一狂欢派对 五款市面上获得好评的好物
  • 【深度学习】— softmax回归、网络架构、softmax 运算、小批量样本的向量化、交叉熵
  • 实现 Spring IOC 的关键问题和技术详解
  • 基于SpringBoot+Vue的高校运动会管理系统
  • X3U·可编程控制器的定位控制
  • 文心智能体——制作你的专属AI
  • 如何让猫咪长肉?瘦猫增重猫罐测评:fellicita、希喂、wellness好不好?
  • Python环境安装教程
  • Linux线程(七)线程安全详解
  • hdfs伪分布式集群搭建
  • 打卡第一天 B2005 字符三角形
  • k8s 之动态创建pv失败(踩坑)
  • 【复习】HTML常用标签<table>
  • 使用DS18B20温度传感器读取温度,附STM32代码示例
  • VBA信息获取与处理第三个专题第三节:工作薄在空闲后自动关闭
  • Kafka 快速入门
  • 单细胞hdWGCNA分析学习和整理