记录一次RPC服务有损上线的分析过程
💡
原文中文,约9300字,阅读约需23分钟。
📝
内容提要
某应用启动时出现空指针异常,因配置数据未加载完成。解决方案是调整JSF服务的发布顺序,确保数据初始化在服务发布之前。建议使用延迟发布或手动发布方式,以确保服务正常上线。
🎯
关键要点
-
某应用启动时出现空指针异常,因配置数据未加载完成。
-
服务依赖的藏经阁配置数据未加载完成导致空指针异常。
-
解决方案是调整JSF服务的发布顺序,确保数据初始化在服务发布之前。
-
建议使用延迟发布或手动发布方式,以确保服务正常上线。
-
JSF Provider发布有两个地方:Bean的初始化过程和ContextRefreshedEvent事件触发。
-
延迟发布的配置可以通过设置delay属性来实现。
-
应用启动完成后,先做初始化动作,完成后再手动发布Provider。
-
RPC服务进行优雅上线的常用方式包括延迟发布和手动发布。
❓
延伸问答
应用启动时出现空指针异常的原因是什么?
空指针异常是由于服务依赖的藏经阁配置数据未加载完成导致的。
如何解决JSF服务的空指针异常问题?
解决方案是调整JSF服务的发布顺序,确保数据初始化在服务发布之前。
什么是延迟发布和手动发布?
延迟发布是指在服务发布前等待一段时间,手动发布是指在完成初始化后手动启动服务。
JSF Provider的发布过程包括哪些步骤?
JSF Provider的发布过程包括Bean的初始化和ContextRefreshedEvent事件触发。
如何确保服务正常上线?
可以通过使用延迟发布或手动发布方式来确保服务正常上线。
在Spring Boot中,如何实现数据的初始化加载?
数据的初始化加载可以通过实现CommandLineRunner接口来完成。
➡️