主题
面试速答(先看这里)
**一句话结论:**如果 watchdog 失效了,或者是说该续期但是没有按时续期,主要有以下几个可能。
60秒标准回答:
上文先看懂 watchdog 的原理
如果 watchdog 失效了,或者是说该续期但是没有按时续期,主要有以下几个可能
1、你主动设置了超时时间 ,在上面的文章中我们看了源码,深入的介绍了,当你调用 Redisson 的加锁方法时,如果自己指定了超时时间,redisson 就不会再帮你续期了
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**上文先看懂 watchdog 的原理。
- **要点2:**1、你主动设置了超时时间 ,在上面的文章中我们看了源码,深入的介绍了,当你调用 Redisson 的加锁方法时,如果自己指定了超时时间,redisson 就不会再帮你续期了。
- **要点3:**2、没能及时的执行续期动作 ,续期是通过时间轮在后台执行的,如果到了该执行的时候,因为种种原因,没有执行成功,比如说机器崩溃了,或者机器的 CPU 被打满了,无法执行这个动作了,都有可能导致没能及时执行续期动作。
- **要点4:**3、执行续期失败了 ,还有一种情况就是续期任务执行了,但是执行的时候失败了,比如 Redis服务器挂了,网络连不上了,也可能会导致无法续期。
**记忆锚点:**watchdog → Redisson → redisson → 的加锁方法 → Redis → CPU
易错提醒:
- 3、执行续期失败了 ,还有一种情况就是续期任务执行了,但是执行的时候失败了,比如 Redis服务器挂了,网络连不上了,也可能会导致无法续期。
加分表达:
- 如果 watchdog 失效了,或者是说该续期但是没有按时续期,主要有以下几个可能。
- 1、你主动设置了超时时间 ,在上面的文章中我们看了源码,深入的介绍了,当你调用 Redisson 的加锁方法时,如果自己指定了超时时间,redisson 就不会再帮你续期了。
- 2、没能及时的执行续期动作 ,续期是通过时间轮在后台执行的,如果到了该执行的时候,因为种种原因,没有执行成功,比如说机器崩溃了,或者机器的 CPU 被打满了,无法执行这个动作了,都有可能导致没能及时执行续期动作。
追问准备:
- 围绕「watchdog」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「Redisson」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「redisson」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
打开文档:✅Redisson的watchdog机制是怎么样的?
上文先看懂 watchdog 的原理。
如果 watchdog 失效了,或者是说该续期但是没有按时续期,主要有以下几个可能。
1、你主动设置了超时时间,在上面的文章中我们看了源码,深入的介绍了,当你调用 Redisson 的加锁方法时,如果自己指定了超时时间,redisson 就不会再帮你续期了。
2、没能及时的执行续期动作,续期是通过时间轮在后台执行的,如果到了该执行的时候,因为种种原因,没有执行成功,比如说机器崩溃了,或者机器的 CPU 被打满了,无法执行这个动作了,都有可能导致没能及时执行续期动作。
3、执行续期失败了,还有一种情况就是续期任务执行了,但是执行的时候失败了,比如 Redis服务器挂了,网络连不上了,也可能会导致无法续期。