springcloud搭建(十一)feign与hystrix整合

本文介绍如何在microservice-common项目中集成Feign客户端与Hystrix断路器,实现服务熔断与降级策略。通过在StudentClientService接口中定义getInfo方法并设置fallbackFactory,以及创建StudentClientFallbackFactory类来处理服务失败情况,最后在consumer项目中调用该方法,并在application.yml中启用Hystrix支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.microservice-common项目StudentClientService.java中增加getInfo方法及fallbackFactory

@FeignClient(value="MICROSERVICE-STUDENT",fallbackFactory=StudentClientFallbackFactory.class)
public interface StudentClientService {    
    /**
     * 获取信息
     * @return
     */
    @GetMapping(value="/student/getInfo")
    public Map<String,Object> getInfo();

}

2.增加 StudentClientFallbackFactory类

package com.java1234.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import com.java1234.entity.Student;

import feign.hystrix.FallbackFactory;

@Component
public class StudentClientFallbackFactory implements FallbackFactory<StudentClientService>{

	@Override
	public StudentClientService create(Throwable cause) {
		// TODO Auto-generated method stub
		return new StudentClientService() {
			
			@Override
			public boolean save(Student student) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public List<Student> list() {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public Map<String, Object> getInfo() {
				Map<String,Object> map=new HashMap<String,Object>();
                map.put("code", 500);
                map.put("info", "系统出错,稍后重试");
                return map;
			}
			
			@Override
			public Student get(Integer id) {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public boolean delete(Integer id) {
				// TODO Auto-generated method stub
				return false;
			}
		};
	}

}

3.microservice-student-consumer-feign-80项目StudentConsumerController.java中增加getInfo调用

    @GetMapping(value="/getInfo")
    @ResponseBody
    public Map<String,Object> getInfo(){
        return studentClientService.getInfo();
    }

4.application.yml中 添加hystrix支持

feign: 
  hystrix: 
    enabled: true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值