# spring-cloud-feign **Repository Path**: lian2333/spring-cloud-feign ## Basic Information - **Project Name**: spring-cloud-feign - **Description**: spring-cloud-feign学习练习例子 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-04-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-cloud-feign spring-cloud-feign学习练习demo ## spring-cloud-feign-consumer ### feign实现远程调用 #### 1.不依赖eureka: 在FeignConsumerClient中添加注解 ``` @FeignClient(name="provider",url = "http://localhost:8082") ``` name:提供者的别名(目前看来只是一个代号,没有发现实际的作用) url:服务提供地址 #### 2.依赖eureka: 在FeignConsumerClient中添加注解 ``` @FeignClient(name="spring-cloud-feign-provider") ``` name:提供者注册到eureka上的serviceId 由于依赖了eureka,eureka内包含了ribbon的依赖,所以这种方式默认有负载均衡,不需要额外再添加ribbon依赖,生产过程中使用此方式更合理 通过使用feignclient实现了类似接口似的消费者调用提供者,不再需要拼接服务端的serviceId或者url 注:本示例中使用的是第一种方式(不依赖eureka的方式),另外在未使用eureka的依赖的情况下,bootstrap.properties里的配置是无效的,只会获取application.properties当中的配置。如果使用的了eureka依赖,则两个配置 文件随便使用一个即可,加载顺序是bootstap.properties先与application.properties ### Feign Hystrix 使用feignClient的fallback属性来实现熔断 FallBackFeign 必须实现FeignConsumerClient接口,然后再对应方法里进行处理 控制超时机制和超时时间的配置: ``` #hystrix默认超时时间配置(如果不设置,则默认为1000ms) hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=4000 #hystrix超时机制开关 hystrix.command.default.execution.timeout.enabled=false ``` 注:由于feign hystrix默认是禁用的,所以需要通过设置feign.hystrix.enabled=true来启用,另外FallBackFeign必须在容器中创建实例 ## spring-cloud-feign-eureka 注册中心 ## spring-cloud-feign-provider 服务提供者,注册到eureka上