熔断器-接eureka负载均衡试验

本文介绍如何在Spring Cloud项目中使用FeignClient实现远程调用,并通过Hystrix实现服务熔断机制。当生产者服务不可用时,消费者能够优雅地处理故障,返回定制的错误信息。

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

 在消费者的rpc中添加

package com.pp.rpc;

import java.util.HashMap;
import java.util.Map;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import feign.hystrix.FallbackFactory;

@FeignClient(name = "APP-BANANA", fallbackFactory = MyFactory.class)
public interface DemoService {
	@RequestMapping("/pp/Student/selectAll")
	@ResponseBody
	public Map<String, Object> listStudent();
}

@Component
class MyFactory implements FallbackFactory<DemoService> {
	@Override
	public DemoService create(Throwable arg0) {
		return new DemoService() {
			@Override
			public Map<String, Object> listStudent() {
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("FALLBACK", "熔断器生效/业务繁忙 稍后请重试");
				return map;
			}
		};
	}
}

试验:当把生产者的名字故意改错时,消费者调用时

 可以看到,熔断器生效了

application.properties配置熔断时间

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000(5秒)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值