java spring 降级_springcloud以类降级

项目架构

8ee74a46b4e5ce9c328859d419f1458b.png

memberService中代码

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

public interface MemberService {

@RequestMapping(value = "testMember",method = RequestMethod.GET)

public String testMember();

@RequestMapping(value = "test",method = RequestMethod.GET)

public String test();

orderService中代码

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

public interface OrderService {

@RequestMapping(value = "testOrder",method = RequestMethod.GET)

public String testOrder();

}

order

项目结构图

2995849b663aea0bec9a0da099b87ccc.png

fallBack中代码

注意:该类实现的接口是feign中的接口

@Component

public class MemberFallBack implements MemberFeign {

@Override

public String testMember() {

return "服务降级";

}

@Override

public String test(){

return "服务降级";

}

MemberFeign中的代码

import com.bdqn.fallBack.MemberFallBack;

import com.bdqn.service.MemberService;

import org.springframework.cloud.openfeign.FeignClient;

@FeignClient(name = "member",fallback = MemberFallBack.class)

public interface MemberFeign extends MemberService {

}

orderService

@RestController

public class OrderService {

@Autowired

private MemberFeign memberFeign;

@RequestMapping("test")

public String test(){

return memberFeign.testMember();

}

OrderStar

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import org.springframework.cloud.openfeign.EnableFeignClients;

import org.springframework.cloud.openfeign.FeignClient;

import org.springframework.context.annotation.Bean;

import org.springframework.web.client.RestTemplate;

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients

public class OrderStar {

public static void main(String[] args) {

SpringApplication.run(OrderStar.class,args);

}

@Bean

@LoadBalanced

RestTemplate restTemplate() {

return new RestTemplate();

}

application.yml配置文件

###服务启动端口号

server:

port: 8000

###服务名称(服务注册到eureka名称)

spring:

application:

name: order

###服务注册到eureka地址

eureka:

client:

service-url:

defaultZone: http://localhost:8100/eureka

###因为该应用为注册中心,不会注册自己

register-with-eureka: true

###是否需要从eureka上获取注册信息

fetch-registry: true

###开启Hystrix断路器

feign:

hystrix:

enabled: true

##### hystrix禁止服务超时时间

#hystrix:

# command:

# default:

# execution:

# timeout:

# enabled: false

#

member

245f2aa1cbc0a3441fecd135a0f790d9.png

MemberServiceIpml

import com.bdqn.service.MemberService;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class MemberServiceIpml implements MemberService {

@RequestMapping(value = "testMember",method = RequestMethod.GET)

public String testMember() {

try {

Thread.sleep(1500);

}catch (Exception e){}

return "会员接口";

}

@Override

public String test() {

try {

Thread.sleep(1500);

}catch (Exception e){}

return "会员接口";

}

}

MemberStar

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients

public class MemberStar {

public static void main(String[] args) {

SpringApplication.run(MemberStar.class,args);

}

@Bean

@LoadBalanced

RestTemplate restTemplate() {

return new RestTemplate();

}

}

application.yml

###服务启动端口号

server:

port: 8001

###服务名称(服务注册到eureka名称)

spring:

application:

name: member

###服务注册到eureka地址

eureka:

client:

service-url:

defaultZone: http://localhost:8100/eureka

###因为该应用为注册中心,不会注册自己

register-with-eureka: true

###是否需要从eureka上获取注册信息

fetch-registry: true

###开启Hystrix断路器

feign:

hystrix:

enabled: true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值