springcloud为服务之间的通讯提供了两种方式,一种是restTemplate另一种就是feign。
两种通讯方式本质上都是restful风格的HTTP请求。
feign:编写一个接口,指定该接口调用其他服务。用feign对应注解修饰接口类,服务启动的时候会扫描该注解实现相关的动态加载和实例化。在正式调用的时候会生成一个restTemplate对象并将接口方法的相关参数信息设置到该对象中,由该对象进行发送真正的请求。
feign应用在服务消费端,他可以继承ribbon和Hystrix一起使用进而实现负载均衡和熔断。
加载流程粗略示意图: