Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Nobilta opened this issue Sep 5, 2022 · 8 comments
Closed

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

Nobilta opened this issue Sep 5, 2022 · 8 comments

Comments

@Nobilta
Copy link

Nobilta commented Sep 5, 2022

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):
@tokers
Copy link
Contributor

tokers commented Sep 5, 2022

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.

@Nobilta
Copy link
Author

Nobilta commented Sep 5, 2022

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?

@tokers
Copy link
Contributor

tokers commented Sep 6, 2022

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.

@Nobilta
Copy link
Author

Nobilta commented Sep 6, 2022

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?

@guitu168
Copy link
Contributor

guitu168 commented Sep 6, 2022

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

@qiqizjl
Copy link

qiqizjl commented Nov 22, 2022

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

@tzssangglass
Copy link
Member

ref: #8229 (comment)

@shreemaan-abhishek
Copy link
Contributor

The gRPC support has now been removed: #10015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants