讨论数量:
PHP不具备健康检查能力。
可以使用Nginx反代java的接口,让nginx去执行健康检查。
php逻辑请求nginx,当服务不可用时马上返回502。php获得到502时继续原有逻辑。
由于服务相应时间不可控,所以不能用PHP请求设置超时时间来判定java挂了。还是nginx稳妥。
相关模块参考:nginx_upstream_check_module
这个吧,其实日常开发非常常见,目前的业务多多少少都会和其他很多第三方接口发生信息交互。
优雅的laravel其实已经有一个很强大的集成处理库了,文档当中就有,他就是:
HTTP客户端
:
文档地址参照:HTTP 客户端《Laravel 9 中文文档》
大概罗列几个特性,基本都能满足你的需求:
- 超时(当接口超过指定时间未返回结果,那你可以自由切换超时逻辑,切换到其他API)
- 重试 (当接口不稳定,需要多次确认的话,可以采用重试方法,多次重试依然失败的,可以考虑切换API)
- 错误处理 (当接口报出了其他异常错误,捕捉到错误信息,逻辑判断进行切换API)
推荐文章: