springcloud系列八 整合Hystrix

springcloud系列八 整合Hystrix

feign本身是支持Hystrix的,所以不需要引入其他依赖:

我们可以看看feign这个项目的依赖,就是引入这个依赖的pom.xml

要想看这个很简单,点击那个依赖进去就可以了

springcloud系列八 整合Hystrix_第1张图片

点进去就可以看到

"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4.0.0
    
        org.springframework.cloud
        spring-cloud-openfeign
        2.1.0.RELEASE
        ..
    
    spring-cloud-starter-openfeign
    Spring Cloud Starter OpenFeign
    Spring Cloud Starter OpenFeign
    https://projects.spring.io/spring-cloud
    
        Pivotal Software, Inc.
        https://www.spring.io
    
    
        ${basedir}/../..
    
    
        
            org.springframework.cloud
            spring-cloud-starter
        
        
            org.springframework.cloud
            spring-cloud-openfeign-core
        
        
            org.springframework
            spring-web
        
        
            org.springframework.cloud
            spring-cloud-commons
        
        
            io.github.openfeign
            feign-core
        
        
            io.github.openfeign
            feign-slf4j
        
        
            io.github.openfeign
            feign-hystrix
        
        
            io.github.openfeign
            feign-java8
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
            true
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-archaius
            true
        
    

是本身就支持的,所以直接使用就可以了:

 

使用很简单:

在yml文件中开启:

feign:
  hystrix:
    enabled: true

看之前写的调用接口:

package com.cxy.service;

import com.cxy.dataObject.PersonDo;
import com.cxy.service.impl.PersonServiceImpl;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(value = "cxy-person-service",fallback=PersonServiceImpl.class)
public interface IPersonService {
    @RequestMapping("/person/{id}")
    PersonDo getPersonDoById(@PathVariable("id")Integer id);
}

springcloud系列八 整合Hystrix_第2张图片

那个如果服务出现问题了就进入实现类的方法中

 然后填写一个实体类就可以了:

package com.cxy.service.impl;

import com.cxy.dataObject.PersonDo;
import com.cxy.service.IPersonService;
import org.springframework.stereotype.Component;

/***
 * @ClassName: PersonServiceImpl
 * @Description:
 * @Auther: 陈绪友
 * @Date: 2019/1/2821:09
 * @version : V1.0
 */
@Component
public class PersonServiceImpl implements IPersonService {
    @Override
    public PersonDo getPersonDoById(Integer id) {
        return new PersonDo(1,"1",1,"1");
    }
}

 不启动person服务看结果:

springcloud系列八 整合Hystrix_第3张图片

是在实现类中的数据,代表生效了

posted @ 2019-01-29 11:28 动手的程序员 阅读( ...) 评论( ...) 编辑 收藏

你可能感兴趣的:(springcloud系列八 整合Hystrix)