为什么要用微服务
微服务出现之前流行的 一体化结构 像是一个大容器,包含了系统的所有组件。这种架构有如下不足:
- 不灵活——无法使用多种技术去构建一体化应用
- 不可靠——如果系统中有一个功能不工作了,将可能造成整个系统无法工作
- 不易扩展——耦合度高,系统升级必须重构整个系统
- 迭代速度慢——各模块开发进度不一致导致开发集成部署阻塞
- 等等
什么是微服务
微服务 是一种架构设计风格,把一个单体系统按业务功能拆分为多个服务,每个服务相互隔离、自治,各自实现单一的业务功能。有如下的特点:
- 解耦——减少各功能模块之间的相互影响,扩展性强
- 自治——各自维护自己的数据存储、业务逻辑等
- 职责明确——各开发团队独立工作,提高开发效率
- 持续交付——增加新功能时,只需再开一个新服务
- 等等
微服务架构的优势
- 独立开发
- 独立部署
- 错误隔离——单个服务出现错误,不影响其他服务正常运行
- 混合技术栈——每个服务可以使用不同的编程语言开发
- 按粒度扩展——新增功能时,只需新开发一个服务
Spring cloud 简介
Spring Cloud是微服务的代表性框架,基于springboot实现的微服务架构开发工具。(不了解Springboot 的朋友一定要先看看 SpringBoot)
SpringCloud包含多个组件:
-
Spring Cloud Netflix:核心组件
- Eureka:服务治理组件
- Ribbon:客户端负载均衡的服务调用组件
- Feign:基于Ribbon和Hystrix的声明式服务调用组件
- Zuul:网关路由组件
- Hystrix:容错管理组件
-
Spring cloud Config:配置管理工具
-
……
Springcloud 与 springboot版本匹配(图片来自网络,如侵权,请联系删除)
本专栏 SpringCloud 基础系列文章源码运行环境:
Eclipse: Photon Release(4.8.0)
Jdk: 1.8
Maven: 3.3.3
SpringBoot: 2.0.2.RELEASE
SpringCloud: Finchley.RELEASE
源码地址:https://pan.baidu.com/s/1Hmvh1Bbss_Z1w1I7I1mwDw 提取码:e41h
SpringCloud 基础系列其他文章:
SpringCloud 基础——Eureka服务注册中心
SpringCloud 基础——服务调用(RestTemplate实现)
SpringCloud 基础——服务调用(Feign实现)
SpringCloud 基础——Ribbon 负载均衡(RestTemplate 与 Feign)
SpringCloud 基础——Zuul 路由网关
SpringCloud 基础——Hystrix 熔断器与降级(RestTemplate 与 Feign)
SpringCloud 基础——Config 配置中心
SpringCloud 基础——Sleuth 链路追踪