解决手写RPC中 测试容错/重试机制时CompletableFuture get方法一直阻塞的bug

这个问题整整困扰了我快2个小时,所以发出来希望大家不会和我一样浪费了这么多时间😭

由于Vert.x他本身自带的日志系统会不停打印,还有IDEA本身自带的debugger(下面)可能有点误导,导致我一开始一点也没分辨出来他是因为阻塞的原因才不会进行重试和容错(一直以为是异常处理出现问题😓)



解决方案:将CompletableFuture的无参的get方法改为有参的


具体原因如下(参考文章https://blog.csdn.net/xiaolyuh123/article/details/85023269):

这个时间参数可以根据具体情况设置(反正我是随便填的😎)

再次启动服务提供者,然后使用 Debug 模式启动服务消费者,当服务消费者发起调用时,立刻停止服务提供者。

下面就可以看到 重试机制 容错机制 成功起作用了😆




0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
流连
作者分享
day14 1.力扣:完成每日一题(其实看了挺久没怎么懂,后面也是copy题解,感觉有点难了)。复习代码随想录贪心篇之前的2、3道题目。 2.api开放平台:部署上线来来回回折腾了两天半终于是把功能都跑通了。好多出错都是能在用户中心部署上线两篇找到解决方法的,但是我自己总瞎折腾浪费了挺多时间(特别是前后端多环境配置上)。到目前为止,已经部署上线过2个项目了,之后应该能更加熟练吧。 准备投暑期实习了,但是八股进度为0,明天开始要计划背背八股了,然后是继续扩展下api项目,预计要花个4天至少吧。
0
day13 1.力扣: 完成每日一题,代码随想录贪心篇周回顾——主要是买卖股票类型的题目。后面再刷了一道"加油站"",之前刷过一次,现在忘了怎么做了,只想出来暴力解法,后面看了看题解感觉这个贪心思路确实很妙。 2.api开放平台:今天看完了第4期 跟敲代码 笔记整理。学习了spring gateway的使用和网关的相关知识。 ps:到今天已经连续十多天没打卡了(不是没学习),只是网上学到12点左右就懒得打卡了[调皮], 现在想想还是要多记录下学习进度比较好。 今天看了柒木佬的api作业,佩服得五体投地,感觉一边看视频一边写代码学到的比较有限啊。明天开始还是先看完视频再自己独立实现比较好,这样比较能锻炼自己独立开发的能力。
0
day12 1.代码随想录:回溯部分学完了,回顾了之前的字符串切割问题和子集问题。今天的每日一题数字游戏感觉还是有难度的,自己没想出来最后还是看了题解,学到了可以用大小顶堆查找动态数组的中位数。 2.Redis学习:p60-67,学习了Redis分布式锁的原子性问题,lua脚本和redisson学习。不得不说黑马虎哥的源码讲解真的细节,ppt流程图画得很好。 3.伙伴匹配系统:今天开始学习伙伴匹配,简单看了数据库设计部分,明天继续。
0
day11 1.代码随想录:复习了昨天的解数独问题,今天开始决定坚持打卡力扣每日一题。 2.Redis学习:p52-p60,学习了解决优惠券超卖,一人一单,高并发锁失效的问题。
0
day10 1.代码随想录:1.5h-复习下昨天写过n皇后和重新安排行程问题,然后写了一道解数独的回溯问题,卡了挺长时间,最后还是看下了答案才解决的。 2.redis学习:6h-时间挺长了,但是就只看了p45-p52,中间一小段时间去下载安装测试工具jmeter了。学习了jmeter基本使用,Redis工具类的封装,使用Redis实现全局唯一id,实现优惠券秒杀下单的功能。 ps:感觉还是效率比较低,虽然说学得比较细吧,但是还是要适当提高下学习效率。
0
下载 APP