什么是SpringCloud
一、了解SpringCloud
SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件等
SpringCloud利用了SpringBoot的开发便利性,巧妙的简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等,他们都可以用Springboot的开发风格做到一键启动或者部署
SpringBoot并没有重复造轮子,他只是将目前各家公司开发的比较成熟,经得起实际考研的服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出一套简单易懂、易部署和易维护的分布式系统开发工具包
SpringCloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶
二、SpringCloud和SpringBoot的关系
1、SpringBoot专注于快速方便的开发单个个体微服务
2、SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个位服务之间提供:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等集成服务
3、SpringBoot可以离开SpringCloud独立使用、开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
4、SpringBoot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架
传统架构
微服务架构面临的问题
1、服务很多,客户端该怎么访问呢?
2、这么多的服务,服务之间如何进行通信?
3、服务如此之多,如何治理?
4、服务挂掉了,该怎么解决?
解决以上这四个问题,方案可以有如下
SpringCloud,他不是一种技术,而是一种生态!用来解决以上的四个问题。
学习和参透SpringCloud的前提是必须了解掌握SpringBoot!!!
目前来说有三套解决方案
1、Spring Cloud NetFlix 一站式解决方案
(1)api网关,解决服务路由问题,zuul组件
(2)解决通信使用Feign,本质上是基于http的通信方式
(3)治理服务(服务的注册和发现)通过Eureka
(4)提供熔断机制:Hystrix
2、Apache Dubbo+zookeeper 半自动,需要整合别人的
(1)没有api,需要找第三方组件
(2)通信使用Dubbo
(3)服务的注册和发现使用zookeeper
(4)没有熔断机制,需要借助Hystrix
3、Spring Cloud Alibaba 一站式解决方案,更为简单,和NetFlix类似
至此,初始SpringCloud已经完成,后续还会继续更新,请继续关注和支持!