SpringCloud极简入门(六)声明式REST客户端-Feign

作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。

一.什么是Feign

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果

二.使用Feign

1.在Consumer项目(端口为:3333)的基础上修改,添加Feigin依赖包

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2.找到主程序类,打上@EnableFeignClients标签开启Feigin

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class Consumer1Application {

    public static void main(String[] args) {
        SpringApplication.run(Consumer1Application.class, args);
    }
}

3.定义Feigin接口
使用@FeignClient注解来声明Feign Client接口,该注解的value为需要远程调用的服务,而configuration指向负载均衡策略配置类
而该接口下的“provide”方法通过Feign来调用“PRODUCER”服务的“/provide”接口
```
//PRODUCER:指向要访问的服务
//configuration = FooConfiguration.class: Feign Client配置类,指定负载均衡策略
@FeignClient(value = “PRODUCER”,configuration = FooConfiguration.class)
public interface MyFeignClient {

//当此方法别调用会自动请求到 PRODUCER服务的 /provide 资源
@RequestMapping(value = "/provide")
public String provide(@RequestParam("name") String name);

}



@Configuration
public class FooConfiguration {
@Bean
public IRule ribbonRule() {
//RandomRule : 负载均衡规则:随机
return new RandomRule();
}
}


>4.ConsumerController增加方法feignTest,调用MyFeignClient的provide方法

@Autowired
private MyFeignClient myFeignClient;

@RequestMapping("/feign")
public String feignTest(@RequestParam("name") String name){
    return myFeignClient.provide(name);
}

```

5.测试:依次启动EurekaServer,Producer,Producer2,Consumer,访问http://localhost:3333/feign?name=zs 你将会看到:“zs:你好呀这里是Producer服务”和“zs:你好呀这里是另一个Producer服务”的随机出现。说明我们的负载均衡随机算法目的达到。

注意:我们的注册中心已经实现了高可用集群,启动EurekaServer服务的时候请使用 java -jar 的方式启动。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值