SpringCloud_01 SpringCloud与微服务简介
什么是微服务
- 就目前而言,对于微服务,业界没有一个统一的、标注的定义。
- 但就通常而言,微服务是一种架构模式,或者说是一种架构风格。
- 它提倡将单一的应用程序(All In One)划分成一组小的服务,每个服务运行在其独立的进程内,服务之间互相协调,互相配置,为用户提供服务。
- **微服务核心就是将传统的一站式应用,根据业务拆分成一个个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务。**一个服务就做一件事情,从技术角度看就是一种小而独立的处理过程,类似进程的概念。能够自行单独启动或销毁,拥有自己独立的数据库。
优缺点
- 优点
- 每个服务足够内聚,足够小,代码容易理解。
- 开发简单,效率高。能够被小团队开发。
- 微服务是松耦合的,是有功能意义的服务,无论是开发阶段或是部署阶段都是独立的。
- 能使用不同的语言开发。
- 易于和第三方集成。
- 易于修改和维护。
- 允许融合最新的技术。
- 微服务只是业务逻辑代码,不会和HTML,CSS或者其他界面混合。
- 每个微服务都有自己的存储能力,即可以有自己的数据库,也可以有统一的数据库。
- 缺点
- 开发人员要处理分布式系统的复杂性。
- 运维难度随着服务增加,压力也在增大。
- 系统部署依赖。
- 服务间通信成本。
- 数据一致性。
- 系统集成测试。
- 性能监控。
什么是SpringCloud
- SpringCloud,是基于SpringBoot提供了一套微服务解决方案。包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器等组件。
- SpringCloud利用SpringBoot开发的便利性,巧妙的简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理,服务发现,断路器,微代理,事件总线,全局锁,决策竞选,分布式会话等,它们都可以用SpringBoot的开发风格做到一键启动和部署。
SpringCloud与SpringBoot的关系
- SpringBoot专注于快速开发单个个体微服务(Jar)。
- SpringCloud是关注全局的微服务协调治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理,服务发现,断路器,微代理,事件总线,全局锁,决策竞选,分布式会话等集成服务。
- SpringBoot可以离开SpringCloud独立使用,开发项目。但SpringCloud离不开SpringBoot,属于依赖关系。