Skip to content

NamingEventListener通知时延较长 #278

@007idle

Description

@007idle

[version]
nacos-sdk = { version = "0.5.2", features = ["default"] }

[question]

现象:nacos客户端实现了NamingEventListener,在使用过程中发现,注册到nacos-server的服务实例,在下线后,NamingEventListener 至少要1-2分钟才能收到事件。

诉求: 有没有好的方式,能尽快收到服务实例变更的事件。

备注: 从nacos-sdk日志的日志中nacos_sdk::naming::observable::service_info_observable 是很快(大概几秒)就收到变更事件。但是看了源代码发现是外部crate调用不了,只能nacos-sdk内部调用

[log]
2026-03-17 15:02:11.275  INFO nacos_sdk::naming::handler::naming_push_request_handler: 38: receive NotifySubscriberRequest from nacos server: NotifySubscriberRequest { service_info: ServiceInfo { name: "pile-cloud-order", group_name: "DEFAULT_GROUP", clusters: "", cache_millis: 10000, last_ref_time: 1773730931274, checksum: "", all_ips: Some(false), all_ips_3x: None, reach_protection_threshold: false, hosts: Some([]) }, headers: {}, request_id: Some("38"), namespace: Some("pile-cloud"), service_name: Some("pile-cloud-order"), group_name: Some("DEFAULT_GROUP") }
2026-03-17 15:02:11.276  WARN emit: nacos_sdk::naming::observable::service_info_observable: 201: empty or error push: ServiceInfo { name: "pile-cloud-order", group_name: "DEFAULT_GROUP", clusters: "", cache_millis: 10000, last_ref_time: 1773730931274, checksum: "", all_ips: Some(false), all_ips_3x: None, reach_protection_threshold: false, hosts: Some([]) }

rror push: ServiceInfo { name: "pile-cloud-order", group_name: "DEFAULT_GROUP", clusters: "pile-cloud", cache_millis: 10000, last_ref_time: 1773730967350, checksum: "", all_ips: Some(false), all_ips_3x: None, reach_protection_threshold: false, hosts: Some([]) }
2026-03-17 15:03:00.463  INFO nacos_sdk::naming::handler::naming_push_request_handler: 38: receive NotifySubscriberRequest from nacos server: NotifySubscriberRequest { service_info: ServiceInfo { name: "pile-cloud-order", group_na
me: "DEFAULT_GROUP", clusters: "", cache_millis: 10000, last_ref_time: 1773730980461, checksum: "", all_ips: Some(false), all_ips_3x: None, reach_protection_threshold: false, hosts: Some([ServiceInstance { instance_id: Some("192.1
68.91.1#6334"), ip: "192.168.91.1", port: 6334, weight: 1.0, healthy: true, enabled: true, ephemeral: true, cluster_name: Some("pile-cloud"), service_name: Some("DEFAULT_GROUP@@pile-cloud-order"), metadata: {} }]) }, headers: {}, request_id: Some("39"), namespace: Some("pile-cloud"), service_name: Some("pile-cloud-order"), group_name: Some("DEFAULT_GROUP") }
2026-03-17 15:03:00.463  INFO emit: nacos_sdk::naming::observable::service_info_observable: 303: new ips(1) service: DEFAULT_GROUP@@pile-cloud-order -> [{"instanceId":"192.168.91.1#6334","ip":"192.168.91.1","port":6334,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:00.464  INFO emit: nacos_sdk::naming::observable::service_info_observable: 314: removed ips(1) service: DEFAULT_GROUP@@pile-cloud-order -> [{"instanceId":"192.168.91.1#7705","ip":"192.168.91.1","port":7705,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:00.464  INFO emit: nacos_sdk::naming::observable::service_info_observable: 215: current ips:(1) service: DEFAULT_GROUP@@pile-cloud-order -> [{"instanceId":"192.168.91.1#6334","ip":"192.168.91.1","port":6334,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:00.465  WARN nacos_sdk::naming::observable::service_info_observable: 79: the key "DEFAULT_GROUP@@pile-cloud-order" is not subscribed.
 service: DEFAULT_GROUP@@pile-cloud-order@@pile-cloud -> [{"instanceId":"192.168.91.1#6334","ip":"192.168.91.1","port":6334,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:47.415  INFO subscribe{client_id="naming:localhost:8848:pile-cloud:1"}:schedule_update{group_name="DEFAULT_GROUP" cluster="pile-cloud"}:emit: nacos_sdk::naming::observable::service_info_observable: 314: removed ip
s(1) service: DEFAULT_GROUP@@pile-cloud-order@@pile-cloud -> [{"instanceId":"192.168.91.1#7705","ip":"192.168.91.1","port":7705,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:47.416  INFO subscribe{client_id="naming:localhost:8848:pile-cloud:1"}:schedule_update{group_name="DEFAULT_GROUP" cluster="pile-cloud"}:emit: nacos_sdk::naming::observable::service_info_observable: 215: current ip
s:(1) service: DEFAULT_GROUP@@pile-cloud-order@@pile-cloud -> [{"instanceId":"192.168.91.1#6334","ip":"192.168.91.1","port":6334,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"pile-cloud","serviceName":"DEFAULT_GROUP@@pile-cloud-order","metadata":{}}]
2026-03-17 15:03:47.416  INFO nacos_sdk::naming::observable::service_info_observable: 100: notify listener: "DEFAULT_GROUP@@pile-cloud-order@@pile-cloud", notify data: NamingChangeEvent { service_name: "pile-cloud-order", group_na
me: "DEFAULT_GROUP", clusters: "pile-cloud", instances: Some([ServiceInstance { instance_id: Some("192.168.91.1#6334"), ip: "192.168.91.1", port: 6334, weight: 1.0, healthy: true, enabled: true, ephemeral: true, cluster_name: Some("pile-cloud"), service_name: Some("DEFAULT_GROUP@@pile-cloud-order"), metadata: {} }]) }


2026-03-17 15:03:47.416  WARN subscribe{client_id="naming:localhost:8848:pile-cloud:1"}:schedule_update{group_name="DEFAULT_GROUP" cluster="pile-cloud"}:emit: common::load_balance: 39: [服务变更]:内容:Some([ServiceInstance { insta
nce_id: Some("192.168.91.1#6334"), ip: "192.168.91.1", port: 6334, weight: 1.0, healthy: true, enabled: true, ephemeral: true, cluster_name: Some("pile-cloud"), service_name: Some("DEFAULT_GROUP@@pile-cloud-order"), metadata: {} }])>>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions