前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「 从0到1学习微服务SpringCloud 」05服务消费者Fegin

「 从0到1学习微服务SpringCloud 」05服务消费者Fegin

作者头像
KEN DO EVERTHING
发布2019-03-19 15:48:03
4830
发布2019-03-19 15:48:03
举报
文章被收录于专栏:KEN DO EVERTHINGKEN DO EVERTHING

Fegin简介

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

准备工作

继续用上节的工程, 启动eureka-server,端口为8761;启动service-hi 两次,端口分别为8762 、8863

简单使用

继续使用上节的eureka-client工程 1.加入Fegin依赖

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

2.在启动类加上@EnableFeignClients注解,开启Feign的功能

@SpringBootApplication
@EnableEurekaClient
//加下面这个
@EnableFeignClients
public class EurekaClientApplication {

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

    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

3.定义一个feign接口,通过@ FeignClient(“服务名”),来指定调用哪个服务 比如在代码中调用了service-hi服务的“/hi”接口,代码如下:

@FeignClient("service-hi")
public interface  FeginClient {
    //service-hi服务中名字为"hi"的接口
    @GetMapping("hi")
    String sayHi();
}

4.在controller层,对外暴露一个"hiFromFegin"的API接口,通过上面定义的Feign客户端sayHi 来消费服务

//编译器报错,无视。 //因为这个Bean是在程序启动的时候注入的,编译器感知不到,所以报错。
@Autowired
private FeginClient feginClient;

@GetMapping("hiFromFegin")
    public String hiFromFegin() {
        return feginClient.sayHi();
    }

5.启动程序,多次访问http://localhost:8861/hiFromFegin,浏览器交替显示

hi!i am come from 8862
hi!i am come from 8863

至此,使用Feign消费服务已实现,Feign内置ribbon,带负载均衡的效果

Feign的优势(相比RestTemplate)

1.声明式的REST客户端,通过编写简单的接口和插入注解,只需要像调用本地方法一样调用它就可以完成服务请求及相关处理,使REST调用更加简单 若使用RestTemplate,则需要深入了解HTTP级别API的细节。 2.内置Ribbon,配合Eureka实现负载均衡

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fegin简介
  • 准备工作
  • 简单使用
  • Feign的优势(相比RestTemplate)
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档