微服务架构:基于SOA架构演变而来,继承了SOA优点,并精细化架构粒度(将服务拆分的更加细致),其每个服务可独立部署,并拥有独立的数据库,服务与服务之间互不影响(如果不存在服务相互调用情况下),采用HTTP+JSON(Restful)进行传输(具有广泛的适用性)。
使用微服务架构的优缺点:
优点:
- 每个项目独立部署,耦合性低
- 更加适合敏捷开发(需求进化为核心,采用迭代和循序渐进的方法进行开发)。
- 团队分工更加明确。
- 代码复用度更高。
缺点:
- 分布式部署,调用的复杂性高(服务之间的通信,可能存在网络问题、容错问题及调用关系)
- 独立的数据库,涉及到分布式事务的挑战。
- 测试难度的提升。
- 运维难度加大(多个服务,多个数据库,还有涉及集群问题)
SpringClound简介
SpringCloud是基于SpringBoot基础之上开发的微服务框架,SpringCloud是一套目前非常完整的微服务解决方案框架。其内容包含服务的注册,服务的发现,配置中心、负载均衡、断路器、数据监控、总线、只能路由等。
其主要模块简介如下:
- Eureka:服务注册中心,用于服务的管理。
- Ribbon:基于客户端的负载均衡(nginx基于服务端的负载均衡)
- Hystrix:容错框架,防治服务发生雪崩效应。
- Feign:基于ribbon和hystrix的声明式服务调用组件
- Zuul: 网关组件,提供智能路由、访问过滤等功能。
- Config:分布式的配置管理
- Sleuth:服务的跟踪