噢,原来SpringCloud是这样的呀!



1、明确概念

在我们学习java的过程中,都或多或少的听说过Spring Cloud这个术语,知道它是有关微服务,知道它的学习是在Spring Boot之后。



那Spring Cloud到底是什么?是一种技术吗?
其实不然,Spring Cloud是一套生态系统,是一种分布式的架构。那怎么理解这个生态系统呢?



你可以理解成是一个公司,当公司发展初期,公司员工一个顶俩,前台可以是业务员,也可以是后勤,还可以是大老板;当公司发展到一定的规模,公司的人也就越来越多,前台有专门的小姐姐把守,后勤也有了专人处理,老板就只需要上下班时巡视一下。后来的这种状态,我们就简单的它理解成是一种生态。

Java基础学完,学Java进阶;Java进阶学完,学数据库;数据库学完,学前端;前端学完学SSM框架;SSM框架学完,学Spring Boot;Spring Boot学完,学Spring Cloud…

SSM框架学完就已经能看开发一个网站了




在学习开发技术的初期,我们的目标只是如何进行开发(公司发展初期,目标是如何让公司经行运作),开发技术不断地学习,且越来越多(公司的员工到达一定地规模),接下来就是要将技术合理的运用在实际工作中(公司的员工准备工作),Spring Cloud给出了一种工作开发的行动指南(老板命令每个人干什么工作)。当然,这里的开发方式指的是微服务开发。



可能可以又有人要问了,什么是微服务?

简单的一句理解就是:当我们的项目越来越大,我们就需要将项目合理的模块化,以此让专业的人,做专业的事。

如果对微服务还是不清楚,可以参考博客:传送门

有可能你对Spring Cloud的职责、任务还是没有弄清楚,那么希望下面的这张图对你有帮助(来自Spring的官网)。这张图就是你们上班的工作图。张三做ConfigServer,李四做ServiceRegistry,王五做API Gateway。老板就是Spring Cloud。

在这里插入图片描述


2、Spring Cloud入门

既然你对Spring Cloud已经有了一个初步的认识,那么我们就要进行下一步了。


面对同一项工作,老板总是拥有着多种的工作方案,所以Spring Cloud的方案也就不止一种。

比如:Spring Cloud NetFlix、Apache Dubbo zookeeper、SpringCloud Alibaba等等

这些工作方案主要是围绕时间、经济、成本进行展开,多以Spring Cloud也有他的四个基本问题,

分布式架构会遇到的四个核心问题?

  1. 服务众多,客户端该如何去访问?
  2. 服务众多,服务之间如何进行通信?
  3. 服务众多,如何治理呢?
  4. 服务众多,服务出了故障怎么处理?

3、Spring Cloud技术入门

正文开始了,以下的关于技术的讲解,是基于Spring Cloud Netflix的解决方案。

问题一:服务众多,客户端该如何去访问?

Spring Cloud Netflix使用Zuul进行API网关的配置


问题二:服务众多,服务之间如何进行通信?

Spring Cloud Netflix使用Feign(内部通信方式是基于Http)进行通信


问题三:服务众多,如何治理呢?

Spring Cloud Netflix使用Eureka进行服务的注册与发现

问题四:服务众多,服务出了故障怎么处理?

Spring Cloud Netflix使用Hystrix进行服务的熔断处理



以上的四种技术,就好比四个专业的人,他们在整个项目的分工中,做着自己专业的事情。当然一项工作的完成不可能只有这四个人(Spring Cloud的这四种技术),还有很多其他的人打配合(其他技术),这里只是列举了解决这四个问题的技术。有时候你也会听到一个名字叫Spring Cloud全家桶,这说的就是Spring Cloud下的这个大集体。


4、技术串讲

当用户访问项目的某个端口时,项目内部会进行一个地址的转化,此时出现的技术叫做Zuul;当很多访问进入到项目的内部以后,对于请求,此时出现的技术叫做Ribbon(转化用户访问的压力);我们后台编写的每一个程序项目的子模块都会注册在一个大容器种,方便进行集中的管理,此时出现的技术叫做Eureka,众多的子程序之间是需要通信,前面也说了,项目的各个模块会注册在一个大容器中,那么此时则通过Feign技术进行连接;当访问的服务器由于某些原因,导致无法访问时,可以使用Hystrix技术;由于是微服务开发,远程、多人协同开发就显得十分必要了,我们就可以在Git的帮助下,此时出现的技术叫做SpringCloud config

在这里插入图片描述


这些技术其实官网有一个专业的词语叫做组件。


关于更多的Spring Cloud以及java部分的知识学习,可以查看我之前的博客——自学知识笔记专栏下

希望阅读此文对你有帮助

发布了35 篇原创文章 · 获赞 11 · 访问量 2869
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览