This is an automated email from the ASF dual-hosted git repository.
spacewander pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new f7c791d feat(nacos): support grpc java (#5894)
f7c791d is described below
commit f7c791dcd18286b6bf7fa8db945f7a59097506fd
Author: Weichang Yang <[email protected]>
AuthorDate: Tue Dec 28 09:00:30 2021 +0800
feat(nacos): support grpc java (#5894)
Co-authored-by: tzssangglass <[email protected]>
Co-authored-by: 罗泽轩 <[email protected]>
Co-authored-by: yangweichang <[email protected]>
---
apisix/discovery/nacos/init.lua | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/apisix/discovery/nacos/init.lua b/apisix/discovery/nacos/init.lua
index d163b39..3fe8d2b 100644
--- a/apisix/discovery/nacos/init.lua
+++ b/apisix/discovery/nacos/init.lua
@@ -204,7 +204,8 @@ local function iter_and_add_service(services, values)
core.table.insert(services, {
service_name = up.service_name,
namespace_id = namespace_id,
- group_name = group_name
+ group_name = group_name,
+ scheme = up.scheme,
})
end
::CONTINUE::
@@ -228,6 +229,13 @@ local function get_nacos_services()
return services
end
+local function is_grpc(scheme)
+ if scheme == 'grpc' or scheme == 'grpcs' then
+ return true
+ end
+
+ return false
+end
local function fetch_full_registry(premature)
if premature then
@@ -255,6 +263,7 @@ local function fetch_full_registry(premature)
local data, err
local namespace_id = service_info.namespace_id
local group_name = service_info.group_name
+ local scheme = service_info.scheme or ''
local namespace_param = get_namespace_param(service_info.namespace_id)
local group_name_param = get_group_name_param(service_info.group_name)
local query_path = instance_list_path .. service_info.service_name
@@ -281,11 +290,19 @@ local function fetch_full_registry(premature)
up_apps[namespace_id]
[group_name][service_info.service_name] = nodes
end
- core.table.insert(nodes, {
+
+ local node = {
host = host.ip,
port = host.port,
weight = host.weight or default_weight,
- })
+ }
+
+ -- docs:
https://github.com/yidongnan/grpc-spring-boot-starter/pull/496
+ if is_grpc(scheme) and host.metadata and host.metadata.gRPC_port
then
+ node.port = host.metadata.gRPC_port
+ end
+
+ core.table.insert(nodes, node)
end
::CONTINUE::