微服务中使用spring cloud远程调用的过程
spring cloud在调用接口的过程中,大体经过了5个步骤,其中经过了多个组件。 步骤1、接口化请求调用 步骤2、Feign 步骤3、Hystrix 步骤4、Ribbon 步骤5、HttpClient
具体流程如下 1、当加了@FeignClient注解的接口被调用时,在框架内部会把请求转换为Feign的请求实例feign.Request,交给Feign框架管理。
2、根据调用接口的注解@FeignClient后面的注册名称,找到注册中心的功能模块,然后根据调用的接口的方法声明去该功能模块寻找相应的方法体,此时并未执行。
3、在寻找方法体的过程中,如果上述功能模块服务突然挂掉了,此时就会使用Hystrix组件,请求被Hystrix代理拦截,判断请求是否需要进行熔断,若需要进行熔断,则熔断后并返回异常;否则则传递给Ribbon组件。
4、Ribbon组件的主要作用是来根据请求的特点,对请求进行负载均衡处理(分给多个服务器处理,防止一台服务器被挤爆)。
5、最后通过HttpClient,根据Ribbon传过来的请求(此时该请求已经指定了服务地址),开始真正执行请求;
