【SpringCloud】为什么选择微服务?

一般的平台会遇到的问题:

服务配置复杂。基础服务多,服务的资源配置复杂,传统方式管理服务复杂

服务之间调用复杂。检索服务、用户中心服务等,服务之间的调用复杂,依赖多

服务监控难度大。服务比较多,机器部署复杂,服务存活监控、业务是否正常监控尤为重要

服务化测试问题。服务依赖性比较大,测试一个小的功能,周边服务也需要启动

那么微服务的架构有什么优势呢?

先来看看两者的区别

|-----------|------------|--------------|
| | 传统单体架构 | 分布式微服务架构 |
| 新功能开发 | 需要时间 | 容器开发和实现 |
| 部署 | 不经常且容易部署 | 经常发布,部署复杂 |
| 隔离性 | 故障影响范围大 | 故障影响范围小 |
| 架构设计 | 难度小 | 难度级数增加 |
| 系统性能 | 响应时间快,吞吐量小 | 响应时间慢,吞吐量大 |
| 系统运维 | 运维简单 | 运维复杂 |
| 技术 | 技术单一且封闭 | 技术多样且开放 |
| 测试和查错 | 简单 | 复杂 |
| 系统扩展性 | 扩展性很差 | 扩展性很好 |
| 系统管理 | 重点在于开发成本 | 重点在于服务治理和调度 |

由此可见,分布式系统虽然有一些优势,但也存在一些问题

  • 架构设计变得复杂(尤其是分布式事务)
  • 部署单个服务会比较快,但一次部署多个服务会变得复杂
  • 系统的吞吐量会变大,但是响应时间会变长
  • 运维复杂度会因为服务变多而变得很复杂
  • 架构复杂导致学习曲线变大
  • 测试和查错的复杂度增大
  • 技术很多样,带来维护和运维的复杂度提升
  • 管理分布式系统中的服务和调度变得困难且复杂

简而言之,分布式系统架构的难点在于系统设计、管理和运维

参考资料:《微服务架构实战》------ 张锋

一 叶 知 秋,奥 妙 玄 心

相关推荐
吃饱了得干活13 小时前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
蝎子莱莱爱打怪5 天前
XZLL-IM干货系列 04|Netty 长连接实战:Pipeline 怎么排、心跳怎么跳、连接怎么管
后端·微服务·面试
SamDeepThinking6 天前
Java微服务练习方式
java·后端·微服务
米丘9 天前
微前端之 Web Components 完全指南
微服务·html
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
慧一居士12 天前
Feign的GET请求如何传递对象参数?
java·spring cloud
我登哥MVP12 天前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
慧一居士12 天前
SpringCloud 微服务Feigin 用的完整调用端和被调用的示例
java·spring cloud
霸道流氓气质12 天前
Spring Boot 微服务性能优化完全指南
spring boot·微服务·性能优化
地瓜伯伯12 天前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud