8.5.Feign 与 Hystrix整合-服务熔断降级解耦

从上一节我们整合的情况看:

1.业务代码和降级代码都写在了一起,非常不利于维护,和代码规范

2.如果提供服务的1004都挂了还不能降级么?

因此我们采用用 Feign 与 Hystrix整合-服务熔断降级解耦

第一步:修改 ticket-lock-provider-6004

主要是删除之前的服务降级配置,本质上就只写一个单纯的服务提供者

1.删除application.yml,中对hystrix的超时时间配置

2.删除启动类中的服务熔断注解: @EnableCircuitBreaker

3.删除控制层中的 lockTicket 方法的 @HystrixCommand(fallbackMethod = "lockTicketFallback") 注解 和 降级方法,如下

SpringCloud-day09-Feign与Hystrix整合

第二步:在common模块中,添加一个锁票的客户端接口 和 服务熔断实现

改造完后的代码结构如下:

SpringCloud-day09-Feign与Hystrix整合

 TicketLockClientService代码如下:

package com.wfd360.service;

import com.wfd360.service.impl.TicketLockClientFallbackFactory;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.Map;

/**
 * @author 姿势帝-博客园
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 07/19 3:50
 * @description
 */
@FeignClient(value = "SERVICE-LOCK", fallbackFactory = TicketLockClientFallbackFactory.class)
public interface TicketLockClientService {

    @GetMapping(value = "/lock/ticket/{id}")
    Map<String, Object> lockTicket(@PathVariable("id") Integer id);
}
View Code

相关文章: