nic-6443 commented on code in PR #12353:
URL: https://github.com/apache/apisix/pull/12353#discussion_r2158602660


##########
apisix/discovery/nacos/init.lua:
##########
@@ -318,50 +310,35 @@ local function fetch_full_registry(premature)
             goto CONTINUE
         end
 
-        if not up_apps[namespace_id] then
-            up_apps[namespace_id] = {}
-        end
-
-        if not up_apps[namespace_id][group_name] then
-            up_apps[namespace_id][group_name] = {}
-        end
-
+        local nodes = {}
+        local key = get_key(namespace_id, group_name, 
service_info.service_name)
+        service_names[key] = true
         for _, host in ipairs(data.hosts) do
-            local nodes = up_apps[namespace_id]
-                [group_name][service_info.service_name]
-            if not nodes then
-                nodes = {}
-                up_apps[namespace_id]
-                    [group_name][service_info.service_name] = nodes
-            end
-
             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
-
+        if #nodes > 0 then
+            local content = core.json.encode(nodes)
+            nacos_dict:set(key, content)
+        end
         ::CONTINUE::
     end
-    local new_apps_md5sum = ngx.md5(core.json.encode(up_apps))
-    local old_apps_md5sum = ngx.md5(core.json.encode(applications))
-    if new_apps_md5sum == old_apps_md5sum then
-        return
-    end
-    applications = up_apps
-    local ok, err = events:post(events_list._source, events_list.updating,
-                                applications)
-    if not ok then
-        log.error("post_event failure with ", events_list._source,
-                  ", update application error: ", err)
+    local old_curr_service_in_use = curr_service_in_use
+    curr_service_in_use = service_names
+    -- remove services that are not in use anymore
+    for key, _ in pairs(old_curr_service_in_use) do
+        if not service_names[key] then
+            nacos_dict:delete(key)
+        end
     end

Review Comment:
   ```suggestion
       -- remove services that are not in use anymore
       for key, _ in pairs(curr_service_in_use) do
           if not service_names[key] then
               nacos_dict:delete(key)
           end
       end
       curr_service_in_use = service_names 
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to