springcloud(4)-consumer实现feign接口调用

springcloud(4)-consumer实现feign接口调用,第1张

springcloud(4)-consumer实现feign接口调用

所讲代码仓库地址:https://gitee.com/raoyuuuu/springcloud-demo

实现 创建spring boot项目

依赖


    4.0.0
    
        com.example
        cloud-parent
        0.0.1-SNAPSHOT
        
    

    com.example
    cloud-consumer
    0.0.1-SNAPSHOT
    cloud-consumer
    Demo project for Spring Boot

    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
            2.2.9.RELEASE
        

    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



application配置
server:
  port: 8002
spring:
  application:
    name: cloud-consumer

eureka:
  client:
    register-with-eureka: true #因为是消费端,不需要给其他模块提供服务,也可以不向eureka注册,这边是已向eureka注册
    fetch-registry: true # 拉取服务
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    prefer-ip-address: true
    instance-id: springcloud-consumer8002

# hystrix熔断器
feign:
  circuitbreaker:
    enabled: true

DeptFeign
@Component
@FeignClient(value = "cloud-provider",fallback = DeptFeignFallBack.class)
public interface DeptFeign {
    @GetMapping("dept/list")
    List list();
}
DeptFeignFallBack
@Component
public class DeptFeignFallBack implements DeptFeign {
    @Override
    public List list() {
        Map map = new HashMap();
        map.put("msg","发生异常,联系管理员");
        List list = new ArrayList<>();
        list.add(map);
        return list;
    }
}
DeptController
@RestController
@RequestMapping("dept")
public class DeptController {
    @Autowired
    private DeptFeign deptFeign;

    @GetMapping("list")
    public List queryByNo(){
        return deptFeign.list();
    }
}
CloudConsumerApplication
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableHystrix // 开启熔断器
public class CloudConsumerApplication {

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

}
启动eureka、provider、consumer服务

访问http://localhost:8002/dept/list,consumer通过feign成功访问到provider服务

熔断器作用

假设provider服务不可用,停止provider服务,再次访问 http://localhost:8002/dept/list

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4670628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存