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::

Reply via email to