开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):技术点-SpringCloud 调用接口流程】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11421
技术点-SpringCloud 调用接口流程
内容介绍
一、Hystrix 基本概念
二、流程原理示意图
一、Hystrix 基本概念
SpringCloud 的另一个组件叫 Hystrix,或者叫断路器。
1、Spring Cloud 调用接口过程
Spring Cloud 在接口调用上,大致会经过如下几个组件配合:
Feign——>Bystriz—>Ribbon—> HttpClient ( apache http components或者OKhttp).
二、流程原理示意图
过程中会遇到
Feign——>Bystriz—>Ribbon—> HttpClient ( apache http components或者OKhttp)这几个组件,这几个组件相互配合,才会实现之前的效果。
在调用过程中有两部分,一个叫调用端,一个叫被调用端,说的官方一点,一个叫消费者,另一个是生产者。首先说消费者,因为这个过程都是在消费中做到。
首先第一步叫接口化请求调用,这句话说的比较官方,说的通俗一点其实很好理解,比如说vod里边指定了接口位置,也指定了接口地址,就是你设置一下调用的服务和服务中的那个调用方法,这就是第一步,
比如现在调用 service vod 中的 eduvod video removeAlVideo {id},第一步就是在里边定义。
接下来第二步就是 Feign 组件,在第一步时候只是做到了定义并没有真正意义上的调用,而真正调用的过程就是在第二步之后执行的,而 Feign 要做的事情就是首先在方法里找到具体位置,用方法调用功能,但是它要远程调用 service voc,Feign就去找到 service voc 定义的名字,找到位置并调用。根据名字找到服务做调用,这个过程叫 Feign,这就是第二步。
第三步也就是接下来要用的组件 Hystrix,它的名字叫熔断器或者叫断路器。
比如说vod的服务器突然挂掉了,要是再去调就调不到了,然后就要直接给它断掉,如果没有挂掉就直接调用,如果挂掉了就直接断掉,这就是所说的熔断器或者断路器,就是做到系统的一种保护功能。
如果能调用就直接跳过熔断到下一步,叫 Ribbon,它的含义是,比如现在熔断可以成功调用,那下一个就肯定要调服务组件,这个 Ribbon 组件就是负载均衡,负载均衡就是,比如说现在把 vod 配置到多个服务器,那现在 Ribbon 就会将这些分布到集群服务器中,假如现在有两个服务器,就会把请求平均分到两台服务器中,这就叫负载均衡,用 Ribbon 来做到。
当负载均衡也做到之后,最后一步就是做真正的调用,而最终调用就是用 HttpClient ,这个就是真正用端口去服务方法的一个效果。
总体:
首先有一个消费者做调用,最后有一个生产者做调用,生产者也可以叫被调用者,第一步就是接口化请求调用,就是找到接口的位置和地址,第二步就是根据名字找到服务中的接口做调用,第三个就是比如生产者的服务器当机了就用熔断机制,让它不再调用,如果服务器没挂掉,就正常往下走,一种保护功能。
如果能正常调用就到下一步,就是对你的请求做负载均衡,比如现在生产者有一个集群,但是它会把调用的分担到不同的服务器中,分担之后,就是发送请求,就是最终执行被得到。