spring cloud微服务快速教程之(三)声明式访问Feign、负载均衡Ribbon
2020-01-07 11:16
841 查看
0-前言
eureka实际上已经集成了负载均衡调度框架Ribbon;
我们有了各个微服务了,那怎么来调用他们呢,一种方法是可以使用 RestTemplate(如:String str= restTemplate.getForObject("http://localhost:8763/user/hello",String.class);
使用RestTemplate的话要使用负载均衡调度(ribbon)需要增加@LoadBalanced注解,如:
@Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); }
但是,我们一般不会这样用,我们更希望像调用本地方法一样来调用其他微服务;这时候,Feign就粉末登场了
Feign:声明式服务调用,它使得我们调用其他微服务,就像调用本地方法一样;它默认使用Ribbon实现负载均衡;
1-Feign的使用
1.1、添加依赖
<!-- 声明式调用 feign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
1.2、添加接口
其中name实需要调用的已经注册到eureka的微服务的名称;方法跟要调用的微服务方法一致,只包含声明,不包含实现
package com.anson.service.feign; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; @FeignClient(name = "user") public interface FUserService { @RequestMapping("/user/hello") public String hello(); }
1.3、调用
@Autowired private FUserService fUserService; @RequestMapping("/order2") public String order2() { return fUserService.hello(); }
是不是就像调用本地方法一样简单了;
1.4、运行测试
我们把eureka server项目、user项目(服务提供者)、order项目(服务消费者)依次启动;其中user启动了两个实例,
然后运行 http://localhost:8766/order/order2 ,多刷新几次
可以看到,Feign已成功执行,并且通过默认使用的Ribbon实现了负载均衡;
简单使用就这么简答,更深入的后续再详聊,GIT源码后续再放出
相关文章推荐
- spring cloud快速入门教程(五)进程间调用和微服务负载均衡(RestTemplate+Ribbon)
- Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- 玩转Spring Cloud之服务注册发现(eureka)及负载均衡消费(ribbon、feign)
- SpringCloud 查找调用REST服务使用RestTemplate(ribbon负载)或feign模式 教程源码 火推
- SpringCloud微服务调用方式之Ribbon和Feign方式
- springcloud之客户端负载均衡——Netflix Ribbon/Feign
- spring cloud之服务调用及使用ribbon实现负载均衡(三)
- Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)
- SpringCloud 第二节 两种服务调用方式(ribbon和feign)
- SpringCloud微服务知识整理六:声明式服务调用 Spring Cloud Feign
- 服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)
- springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin
- SpringCloud教程 | 第三篇: 服务消费者(Feign)
- 第九章 Spring Cloud Feign声明式调用服务
- SpringCloud微服务搭建教程有负载均衡
- SpringCloud 笔记 (二)---- 简单搭建一个服务消费者,实现简单的ribbon负载均衡
- Spring Cloud 声明式服务调用 Feign
- spring cloud Feign(声明式服务调用)