java B2B2C源码电子商务平台 -SpringCloud整合Hystrix

SpringCloud整合Hystrix需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码:壹零叁八柒柒肆六二六由于服务调用者有可能调用服务挂掉的提供者,服务调用方整合Hystrix引...

SpringCloud整合Hystrix

需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码:壹零叁八柒柒肆六二六

由于服务调用者有可能调用服务挂掉的提供者,服务调用方整合Hystrix


引入依赖


  <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>

  


主启动开启断路器

@SpringBootApplication
@EnableEurekaClient
//开启断路器
@EnableCircuitBreaker
public class SaleApp {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(SaleApp.class).web(true).run(args);
    }
}


服务调用service修改

@Service
//对这个类采用全局默认的回退机制,回退方法不能带参数,例如:“getMemberFallback”没有参数
//@DefaultProperties(defaultFallback = "getMemberFallback")
public class MemberService {

    @Autowired
    private RestTemplate restTpl;

    //1、@HystrixCommand、@HystrixProperty这些注解不是SpringCloud注解,而是Hystrix框架提供的
    //2、fallbackMethod当修饰具体方法时,fallbackMethod方法的参数和修饰方法保持一致
    @HystrixCommand(fallbackMethod = "getMemberFallback", groupKey = "MemberGroup", commandKey = "MemberCommandKey", 
            commandProperties = {
            //超时熔断
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000")
    }, threadPoolProperties = {
            @HystrixProperty(name = "coreSize", value = "2")
    })
    public Member getMember(Integer id) {
        try {
            Thread.sleep(500);
        } catch (Exception e) {

        }

        Member member = restTpl.getForObject(
                "http://spring-hy-member/member/{id}", Member.class, id);
        return member;
    }

    public Member getMemberFallback(Integer id) {
        Member m = new Member();
        m.setId(1);
        m.setName("error member");
        return m;
    }
}


注意:

@DefaultProperties:可以配置全局回退机制,回退方法不能带参数,例如:“getMemberFallback”没有参数

@HystrixCommand、@HystrixProperty这些注解不是SpringCloud注解,而是Hystrix框架提供的

fallbackMethod当修饰具体方法时,fallbackMethod方法的参数和修饰方法保持一致

企业级java springcloud b2bc商城系统开源源码二次开发


  • 发表于 2018-12-26 10:47
  • 阅读 ( 296 )
  • 分类:Java基础

条评论

请先 登录 后评论
不写代码的码农
IT达人

212 篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除