快速了解微服务,以及SpringCloud主要技术点的作用

在了解SpringCloud之前先了解一下微服务

微服务

   现在有一个项目是一个教育学校,学校有一位语数外全能的老师(服务器),为学生(用户)提供服务,相当于以前的单体架构,但是如果这个老师生病了,可以理解成服务器出现故障,那么全校停课,项目就会停用,这也就是传统架构的模式的缺点。

  随着业务逻辑的增加和复杂性的上升,传统的模式不能够满足需求,于是就有了微服务架构的概念,微服务将原来的一个老师的功能分发到语文老师,数学老师,英语老师,语文老师下面可能还会有古文老师,现代文老师,这一系列的服务被细分化,就体现了微服务。而古文老师,现代文老师就可以成为一个集群。

接下来看一看spring cloud

 首先明确SpringCloud并不是一种技术框架,而是很多技术的总称,也就是说SpringCloud包含多种技术框架,技术框架在一起以后起了一个名字叫spring cloud,这些技术就是为了更好的实现微服务架构。让微服务更加的完善,下面是SpringCloud的主要技术点以及技术点的作用: 

注册中心(Eureka,Zookeeper,Consul):首先明确各个微服务之间是需要相互调用的(老师之间需要沟通),此时就需要一个注册中心来管理这些微服务(老师)。老师把自己独有的信息注册进去,一般是微服务配置文件里面的server- application-name,此时这个老师对外暴露的就是这个信息,学生和其他老师就可以根据这个信息进行调用。

负载均衡(Ribbon、Nginx):为了不让某一台服务器(老师)太闲或者太忙又或者让能力强的老师多教一些学生,因此当用户(学生)访问服务器(老师)时还需要一种技术实现负载均衡。

服务调用(RestTemplate,OpenFeign):另外各个老师之间需要相互沟通也就是服务调用

网关(GateWay,zuul),:但是并不是所有人都能够进这个学校,因此就需要门卫,也就是网关。

  网关又有三大核心:路由,断言,过滤。比如一位同学路由转发到某一间教室,通过断言判断到底是不是真的是这间教室的同学,断言通过之后,还要有一层过滤,判断它作业是不是完成了,完成了才能真正到达教室。

服务熔断/降级/限流(Hystrix,AlibabaSentinel):由于服务之间是存在连环调用的,像这种服务之间出现连续调用也就称之为扇出,当某一个服务出现问题的时候,如果此时还有很多请求到这个出错的服务里面,就会造成内存占用严重,导致其他服务崩溃的情况,出现雪崩效应。服务熔断就是为了决这个问题而出现的,作用原理是如果某一微服务模块过久没有相应, 就会关闭对这个服务端的调用,并快速返回错误的响应信息,给用户友好的提示(如:当前服务器较忙),并且在熔断之后会检测有没有恢复,响应正常后,恢复调用。

  而服务降级是当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理(比如在一些不重要的业务显示:当前访问人数较多,请稍后重试)。服务限流:对超出服务处理能力之外的请求进行拦截,对访问服务的流量进行限制。

服务监控(Sleuth):学校里面可能会出问题,此时我们想快速定位到是哪一位老师的原因,就需要一种技术来实时监控各个老师的情况,也就是Sleuth分布式请求链路跟踪。每一个老师也就是一个微服务。

服务配置中心管理(SpringCloud Config):随着项目体系增大,模块也变多,每一个模块都会有一个配置文件application.yml。但是这些配置文件里面有很多一部分是相同的,因此可以抽取出来进行管理,也就是SpringCloudConfig这项技术。这项技术一般是需要搭配GitHub进行使用。

消息总线(SpringCloud Bus):这个可以看成是上面服务配置中心管理的一个小工具,需要搭配RabbitMQ或者kafka使用,作用就是当GitHub上面的统一配置文件进行更改后,保证所有模块的配置信息都同步更改。

最近在学SpringCloud,自己整理了一下笔记。望各位大佬多多指点。

你可能感兴趣的:(spring,java-ee,spring,cloud)