【Spring123】Spring Cloud 学习积累
入门阅读:https://martinfowler.com/articles/microservices.html
单体应用与微服务架构的优缺点:
单体:
- 复杂性高:
- 技术债务:
- 部署频率低:
- 可靠性差:
- 扩展能力受限:
- 阻碍技术创新:
微服务:
:)
- 易于开发和维护:
- 单个微服务启动较快:
- 局部修改容易部署:
- 技术栈不受限:
- 按需伸缩:
:(
- 运维要求较高:
- 分布式固有的复杂性:
- 接口调整成本高:
- 重复劳动:
微服务设计原则:
- 单一职责:SOLID原则之一,更优雅更敏捷的交付。
- 服务自治:独立的业务能力、依赖和运行环境,高度解耦。
- 轻量级通信:跨语言跨平台,如REST协议。
- 微服务粒度:设计确定边界,相对独立又保持松耦合。
微服务技术选型——两个维度:
- 开发框架:如SpringCloud
- 运行平台:如AWS, Docker
使用Spring Initializr快速创建SpringBoot项目:https://start.spring.io/
项目依赖:Spring Boot, Srping Cloud等
Spring Boot Actuator提供监控端点endpoint
微服务注册与发现:可分为服务器端和客户端,类似:
- 服务注册表:启动时注册,提供查询API和管理API
- 服务注册与发现:通信机制(如心跳)
- 服务检查:可注销
举例Eureka:
举例ZooKeeper: