Dubbo降级&容错机制

Dubbo降级&容错机制

在分布式环境中,由于所有的服务不在同一台服务器中,就涉及到服务之间的调用,而远程调用涉及到网络,网络是不可靠的,这就导致了有时候远程调用会失败,这时候就需要容错机制

而服务降级机制,是指在流量特别大的情况下,我们主动关闭一些不重要的服务,将资源向核心服务倾斜,被关闭的服务就会做服务降级

服务降级

服务降级就是我们将一些不重要的服务屏蔽掉,当有别的服务对被降级的服务发起远程调用时,不发起调用,而是执行本地的服务降级逻辑

首先我们构建一个提供者服务,用于获取用户的地址

@Service
@DubboService
@Slf4j
public class UserServiceImpl implements UserService {
   

    private static int count = 0;

    @Override
    public List<UserAddress> getUserAddressList() {
   
        UserAddress userAddress1 = new UserAddress(1, "HZ", "00000", "小王", "15652211111", "1");
        UserAddress userAddress2 = new UserAddress(2, "BJ", "00001", "小张", "17911111111", "1");
        return Arrays.asList(userAddress1, userAddress2);
    }

    @Override
    public UserAddress getUserAddress(String userId) {
   
        count++;
        log.info("调用次数:{},查询id:{}", count,userId);
        List<UserAddress> userAddressList = getUserAddressList();
        for (UserAddress userAddress : userAddressList) {
   
            if (userAddress.getUserId().equals(userId)) {
   
                return userAddress;
            }
        }
        return null;
    }
}

然后构建一个消费者服务,然后对提供者服务进行降级,不发起远程调用

我们只需要在@DubboReference注解的mock属性中,设置值为force:xxx,即可屏蔽提供者服务,可以设置具体的返回值,或者抛出的异常,或者mock实现的全路径,这里设置为返回一个null值

@Service
public class OrderServiceImpl implements OrderService {
   

    @DubboReference(check = false, mock 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值