openresty 超时问题求解

Levi4 · 2024-9-4 15:16:02 · 44 次点击
整体服务是两套 openresty A/B

然后有几个变量:
A 的 resty-http 的请求超时时间 a_timeout
B 定时同步规则的时间间隔 b_interval

A 使用 resty-http 向 B 发起 http 请求拿响应;
B 使用 ffi 加载 golang 编译的 c-shared 的 so 包,接收到 A 的请求后把请求塞进 so 里用倒数函数 detect 拿结果,在 init_worker 阶段起了个 timer ,每隔 b_interval 拉一次数据并同步到每个 worker 加载的 so ,通过导出函数 update 。

现象:A 上每隔 b_interval 的时间都会出现一波超时,但是我在 B 的 log 阶段,ngx.update_time()后打印了请求的完整耗时 ngx.now()-ngx.req.start_time(),几乎没有超过 a_timeout 的。

目前能排查出来的可能问题应该是导出函数 update 可能有问题,但是如果因为它阻塞了,那在 log 阶段打印请求耗时应该和 A 上的表现一直才对?求指教
举报· 44 次点击
登录 注册 站外分享
快来抢沙发
0 条回复  
返回顶部