表述openfeign的实现原理
在做练习的时候不禁思考了下:openfeign都做了哪些事?
-
扫描客户端
-
负载均衡(选择服务器)
-
服务发现
-
执行服务调用
总体来说openfeign做了三件事:服务发现->负载均衡->服务调用
那么:openfeign的到底是啷个实现原理?
下面是openfeign实现的图解:
根据图例简要表述:
首先,扫描指定包下的类文件,注册 @FeignClient 注解修饰的接口类信息 ,并借助动态代理生成实现类。
其次,通过反射读取 @FeignClient 注解的属性值,也就是服务名,并执行服务发现。
然后,集成ribbon的负载均衡器实现负载均衡。
最后,获取请求路径、参数等配置信息,通过反射读取到SpringMVC的注解获得服务调用,并且通过序列化反序列化,发送请求获得相应,最终返回数据。