apisix icon indicating copy to clipboard operation
apisix copied to clipboard

help request: Can i use etcd's gRPC proxy as apisix's etcd?

Open Nobilta opened this issue 3 years ago • 5 comments
trafficstars

Description

i know that apisix's watch is based on http/1.1,so if i have many route or upstream,apisix will make lots of post request to etcd(such as this paper:https://apisix.apache.org/zh/blog/2021/08/10/apisix-nginx/#%E5%9F%BA%E4%BA%8E-etcd-watch-%E6%9C%BA%E5%88%B6%E7%9A%84%E9%85%8D%E7%BD%AE%E5%90%8C%E6%AD%A5%E6%96%B9%E6%A1%88) so can i use etcd's gRPC proxy(https://etcd.io/docs/v3.5/op-guide/grpc_proxy/) to coalesce watch and improve my performance?if it can be use,why i have some errors in logs,and how can i to fix it ?(i make sure etcd is work,i can use client to control etcd cluster)

lua ./apisix/cli/apisix.lua start

Sep 01 19:38:10 apisix[15069]: lua: /usr/local/apisix/apisix/cli/etcd.lua:215: attempt to index local 'body' (a number value)

Sep 01 19:38:10 apisix[15069]: stack traceback:

Sep 01 19:38:10 apisix[15069]: /usr/local/apisix/apisix/cli/etcd.lua:215: in function 'init'

Sep 01 19:38:10 apisix[15069]: /usr/local/apisix/apisix/cli/ops.lua:689: in function 'init_etcd'

Sep 01 19:38:10 apisix[15069]: /usr/local/apisix/apisix/cli/ops.lua:752: in function '?'

Sep 01 19:38:10 apisix[15069]: /usr/local/apisix/apisix/cli/ops.lua:840: in function 'execute'

Sep 01 19:38:10 apisix[15069]: ./apisix/cli/apisix.lua:34: in main chunk

Sep 01 19:38:10 apisix[15069]: [C]: ?

Sep 01 19:38:10 systemd[1]: apisix.service: control process exited, code=exited status=1

Sep 01 19:38:10 systemd[1]: Failed to start apisix.

Environment

  • APISIX version (run apisix version):v2.15
  • Operating system (run uname -a):centos
  • OpenResty / Nginx version (run openresty -V or nginx -V):
  • etcd version, if relevant (run curl http://127.0.0.1:9090/v1/server_info):v3.5
  • APISIX Dashboard version, if relevant:
  • Plugin runner version, for issues related to plugin runners:
  • LuaRocks version, for installation issues (run luarocks --version):

Nobilta avatar Sep 05 '22 06:09 Nobilta

No, you cannot (at least for now). The ETCD proxy is just a transparent proxy and you still have to use the gRPC protocol from APISIX, which has not been supported yet.

tokers avatar Sep 05 '22 09:09 tokers

No, you cannot (at least for now). The ETCD proxy is just a transparent proxy and you still have to use the gRPC protocol from APISIX, which has not been supported yet.

@tokers fine,but if i want to decrease watch numbers(because my etcd cluster is high load),what should i do?modify the config_etcd.lua's syncdata function?

Nobilta avatar Sep 05 '22 10:09 Nobilta

No, you cannot (at least for now). The ETCD proxy is just a transparent proxy and you still have to use the gRPC protocol from APISIX, which has not been supported yet.

@tokers fine,but if i want to decrease watch numbers(because my etcd cluster is high load),what should i do?modify the config_etcd.lua's syncdata function?

That would be error prone. We are releasing the apisix 3.0 which will use gRPC to communicate with etcd.

tokers avatar Sep 06 '22 00:09 tokers

No, you cannot (at least for now). The ETCD proxy is just a transparent proxy and you still have to use the gRPC protocol from APISIX, which has not been supported yet.

@tokers fine,but if i want to decrease watch numbers(because my etcd cluster is high load),what should i do?modify the config_etcd.lua's syncdata function?

That would be error prone. We are releasing the apisix 3.0 which will use gRPC to communicate with etcd.

that's exciting,when we can use it?

Nobilta avatar Sep 06 '22 02:09 Nobilta

A preview version of 3.0 will be released at the end of September.

guitu168 avatar Sep 06 '22 06:09 guitu168

3.0 has been Released. But it seems that the grpc part is not included?

qiqizjl avatar Nov 22 '22 03:11 qiqizjl

ref: https://github.com/apache/apisix/issues/8229#issuecomment-1299698923

tzssangglass avatar Nov 22 '22 09:11 tzssangglass

The gRPC support has now been removed: #10015

shreemaan-abhishek avatar Sep 06 '23 06:09 shreemaan-abhishek