zoukankan      html  css  js  c++  java
  • Feign

    Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。
    Feign整合了Ribbon和Hystrix

    Feign 特性

    1. 可插拔的注解支持,包括Feign注解和JAX-RS注解
    2. 支持可插拔的HTTP编码器和解码器
    3. 支持Hystrix和它的Fallback
    4. 支持Ribbon的负载均衡(feign底层是使用了ribbon作为负载均衡的客户端,而ribbon的负载均衡也是依赖于eureka获得各个服务的地址,所以要引入eureka-client
    5. 支持HTTP请求和响应的压缩

    依赖

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

    Feign的使用

    1. 添加依赖
    2. 启动类添加 @EnableFeignClients 注解支持
    3. 建立Client接口,并在接口中定义需调用的服务方法
    4. 使用Client接口。
    启动类添加注解支持:
        @EnableFeignClients
        @EnableDiscoveryClient
    
    
    建立Client接口,并在接口中定义需调用的服务方法
    
        //FeignClient注解用于指定从哪个服务中调用功能 ,里面的名称与被调用的服务名保持一致,并且不能包含下划线
        @FeignClient(name = "tensquare-base")
        public interface LabelClient {
            @RequestMapping(value="/label/{id}", method = RequestMethod.GET)
            public Result findById(@PathVariable("id") String id);
        }
    
    
    使用Client接口
    
        @Autowired
        private LabelClient labelClient;
    
        @RequestMapping(value = "/label/{labelid}")
        public Result findLabelById(@PathVariable String labelid) {
            Result result = labelClient.findById(labelid);
            return result;
        }
    

    spring cloud 中 discovery service

    多种实现(eureka、consul、zookeeper等等):

    1. @EnableDiscoveryClient基于spring-cloud-commons
    2. @EnableEurekaClient基于spring-cloud-netflix
    3. 如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient
    4. 如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient
  • 相关阅读:
    leetCode 移动零 问题记录
    leetCode 加一 问题记录
    leetCode 两个数组的交集 II 问题记录
    leetCode 只出现一次的数字 问题记录
    leetCode 旋转数组 问题记录
    将本地项目上传到git
    RabbitMQ Linux 安装教程
    springboot RabbitMQ 配置
    linux——mysql5.5 安装遇到问题总结&解决方式
    Js预编译 GO和AO活动对象
  • 原文地址:https://www.cnblogs.com/loveer/p/11434896.html
Copyright © 2011-2022 走看看