Skip to content

关于 AddressHolder 和 ConnectionHolder 更新提供者列表顺序的疑问 #1490

@sleepynaofu

Description

@sleepynaofu

Your question

在 AbstractCluster.updateAllProviders 方法中,会先调用 AddressHolder.updateAllProviders 方法,然后再调用 ConnectionHolder.updateAllProviders()。如果有新的提供方注册,是否会导致 AddressHolder 可以拿到可用地址,但连接还有建立完成的情况,导致最终抛出 unavailableProviderException 的异常?

Your scenes

在压测情况下,新增部分提供者,消费者会出现少量报错:The service addresses xxx of service xxx is not available, or specify url not exist in providers

Your advice

先调用 ConnectionHolder.updateAllProviders,再 AddressHolder.updateAllProviders

Environment

  • SOFARPC version: 5.8.4
  • JVM version (e.g. java -version): 1.8.0_281
  • OS version (e.g. uname -a): Linux
  • Maven version: 3.6.3
  • IDE version:

Metadata

Metadata

Assignees

No one assigned

    Labels

    remindTo be further discussed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions