@Override
    public void onSelectorChanged(final List<SelectorData> changed, final DataEventTypeEnum eventType) {
        if (CollectionUtils.isEmpty(changed)) {
            return;
        }
        SelectorData selectorData = changed.stream().findFirst().orElseThrow(() -> new ShenyuException("selectorData is null"));
        final String configKeyPrefix = selectorData.getNamespaceId() + DefaultNodeConstants.JOIN_POINT + changeData.getSelectorDataId() + DefaultNodeConstants.JOIN_POINT;
        this.onCommonMultiChanged(changed, eventType, configKeyPrefix, SelectorData::getPluginName, SelectorData::getId);
        LOG.debug("[DataChangedListener] SelectorChanged {}", configKeyPrefix);
    }
onCommonChanged.
save to configuration center common methods.
examples data:
 namespaceId.meta.list
  -> meta.id
  -> meta.id
  -> meta.id

@param configKeyPrefix configKeyPrefix
@param changedList changedList
@param eventType eventType
@param mapperToKey mapperToKey
@param tClass tClass
shenyu-admin-listener/shenyu-admin-listener-api/src/main/java/org/apache/shenyu/admin/listener/AbstractNodeDataChangedListener.java