springcloud3-微服务调用方式之feign实战


5、微服务调用方式之feign 实战 
    简介:改造电商项目 订单服务 调用商品服务获取商品信息
        Feign: 伪RPC客户端(本质还是用http)
        官方文档: https://cloud.spring.io/spring-cloud-openfeign/


        1、使用feign步骤讲解(新旧版本依赖名称不一样)
            加入依赖
                 <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-openfeign</artifactId>
                </dependency>
            启动类增加@EnableFeignClients
            增加一个接口 并@FeignClient(name="product-service") 如:

/**
* 商品服务客户端
*/
@FeignClient(name = "product-service")
public interface ProductClient {

 
 


@GetMapping("/api/v1/product/find")
String findById(@RequestParam(value = "id") int id);

 
 


}

2、编码实战


        3、注意点:
            1、路径
            2、Http方法必须对应
            3、使用requestBody,应该使用@PostMapping
            4、多个参数的时候,通过@RequestParam("id") int id)方式调用


6、Feign核心源码解读和服务调用方式ribbon和Feign选择    
    简介: 讲解Feign核心源码解读和 服务间的调用方式ribbon、feign选择
    
        1、ribbon和feign两个的区别和选择
            选择feign
                默认集成了ribbon
                写起来更加思路清晰和方便
                采用注解方式进行配置,配置熔断等方式方便
负载均衡用的是ribbon
2、超时配置 默认optons readtimeout是60,但是由于hystrix默认是1秒超时 #修改调用超时时间 feign: client: config: default: connectTimeout: 2000 readTimeout: 2000 模拟接口响应慢,线程睡眠新的方式 try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); }

默认路由方式是轮询
推荐feign

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM