一、微服务概述
单体架构:将服务的所有功能集中在一个项目中开发,打成一个包部署
优点:架构简单、部署成本低
缺点:耦合度高
适合小型项目,例如:学生管理系统
分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务
优点:降低服务耦合、有利于服务升级拓展
缺点:架构复杂、难度大
适合大型互联网项目,例如京东、淘宝
微服务是一种经过良好架构设计的分布式架构方案,微服务架构的特征:
单一职责:微服务拆分粒度更小,每一个服务都对唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
优缺点:
优点:拆分粒度更小、服务更独立、耦合度更低
缺点:架构非常复杂、运维、监控、部署难度提高
二、SpringCloud概述
① SpringCloud基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器等组件,除了基于NetFilx的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
② SpringCloud利用SpringBoot的开发便利性,巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等,他们都可以用SpringBoot的开发风格做到一键启动和部署。
③ SpringBoot并没有重复造轮子,它只是将目前各家公司开发的比较成熟,经得起实际考研的服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包
④ SpringCloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
三、SpringCloud和SpringBoot关系
SpringBoot专注于快速方便的开发单个个体微服务
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁,决策竞选、分布式会话等等集成服务
SpringBoot可以离开SpringCloud独立使用,开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
SpringBoot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架