<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
When outputting to the micrometer, uniformly use serviceKey.
![image](https://github.com/apache/dubbo/assets/38374721/5891ff68-83bf-4298-a48f-a6a1910421bc)


}
        List<String> encodedUrlList = new ArrayList<>(urls.size());
        for (String url : urls) {
            encodedUrlList.add(URL.encode(url));
        }
        doSaveSubscriberData(subscriberMetadataIdentifier, encodedUrlList);
    }
    protected abstract void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions);
    protected abstract void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String serviceParameterString);
    protected abstract void doSaveMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url);
    protected abstract void doRemoveMetadata(ServiceMetadataIdentifier metadataIdentifier);
    protected abstract List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier);
    protected abstract void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr);
    protected abstract String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier);
    /**
     * @deprecated only for unit test
     */
    @Deprecated
    protected ExecutorService getReportCacheExecutor() {
        return reportCacheExecutor;
    }
    /**
     * @deprecated only for unit test
     */
    @Deprecated
    protected MetadataReportRetry getMetadataReportRetry() {
        return metadataReportRetry;
    }
}