Pre-check
- [x] I am sure that all the content I provide is in English.
Search before asking
- [x] I had searched in the issues and found no similar feature requirement.
Apache Dubbo Component
Java SDK (apache/dubbo)
Descriptions
Both the ConfigCenter and the MetadataCenter support option check. When the initial connection attempt fails, true means interrupt the whole process once it fails, but false is not fully supported.
Overall, I believe the following points need to be supported here: 1. When the initial connection attempt fails, the whole process will not interrupted 2. When the connection recovery, some related functions also need to be recovered and supported
ConfigCenter
- Add
boolean isAvailable()method toDynamicConfiguration, used for fail fast before connection recovery. - Once the ConfigCenter completes initialization, it will update the config items
ExternalConfigandAppExternalConfig. Do we need to update these config items after the connection is recovered? Some discussions are needed. - In the process of service export and reference, every service will create a listener for every ConfigCenter. There should recreate listener after the connection is recovered. Also the Router Rule listener need to be recreated.
- A listener is created when the
MigrationRuleListeneris initialized. Recovery also need to be supported here.
MetadataCenter
- Add
boolean isAvailable()method toMetadataReport, used for fail fast before connection recovery. - When reporting
ServiceDefinition, eachMetadataReportwill be traversed for reporting, and there will be failure retries. However, if all reports fail, some logging should be required. - When reporting
ServiceNameMapping, it will retry if allMetadataReportreport fail, but there is a lack of retry for eachMetadataReport. - In the
ServiceDiscovery, it is necessary to support bothMetadataInfoandServiceInstancereporting retries. Maybe a status for whether it has been reported or not needs to be introduced here.
Something else
SPI extensions should support the method boolean isAvailable().
Related issues
This issue is a continuation of #15271 and it is part of PR #15594 .
Are you willing to submit a pull request to fix on your own?
- [x] Yes I am willing to submit a pull request on my own!
Code of Conduct
- [x] I agree to follow this project's Code of Conduct