Description
We use plugin limit-conn to limit the request concurrency of each client. We noticed that when a partial replicas of apisix failed while processing requests, the counter on redis will not be decreased properly, which will result in rejecting coming requests on the rest replicas.
We also noticed that the if the decrease of redis counter failed, it will not be retried, which will leads to counter leaks in an unstable network environment.
How can I solve the above problems?
Environment
- APISIX version (run
apisix version): 3.14.1
- Operating system (run
uname -a): Debian GNU/Linux 11 (bullseye)
- OpenResty / Nginx version (run
openresty -V or nginx -V): nginx version: openresty/1.27.1.2
- etcd version, if relevant (run
curl http://127.0.0.1:9090/v1/server_info):
- APISIX Dashboard version, if relevant:
- Plugin runner version, for issues related to plugin runners:
- LuaRocks version, for installation issues (run
luarocks --version):
Description
We use plugin limit-conn to limit the request concurrency of each client. We noticed that when a partial replicas of apisix failed while processing requests, the counter on redis will not be decreased properly, which will result in rejecting coming requests on the rest replicas.
We also noticed that the if the decrease of redis counter failed, it will not be retried, which will leads to counter leaks in an unstable network environment.
How can I solve the above problems?
Environment
apisix version): 3.14.1uname -a): Debian GNU/Linux 11 (bullseye)openresty -Vornginx -V): nginx version: openresty/1.27.1.2curl http://127.0.0.1:9090/v1/server_info):luarocks --version):