private void watcherSelector(final String pluginName, final List<String> selectorIds, final String namespaceId) {
        if (ObjectUtils.isEmpty(selectorIds)) {
            return;
        }
        selectorIds.forEach(selectorId -> {
            final String selectorData = this.getConfigOnWatch(namespaceId + DefaultNodeConstants.JOIN_POINT + changeData.getSelectorDataId()
                            + DefaultNodeConstants.JOIN_POINT + pluginName + DefaultNodeConstants.JOIN_POINT + selectorId,
                    this::cacheSelectorData, this::unCacheSelectorData);

            cacheSelectorData(selectorData);

            final List<String> ruleIds = getConfigListOnWatch(namespaceId + DefaultNodeConstants.JOIN_POINT
                            + changeData.getRuleDataId() + DefaultNodeConstants.JOIN_POINT
                            + pluginName + DefaultNodeConstants.JOIN_POINT + selectorId + DefaultNodeConstants.POINT_LIST,
                updateData -> {
                    List<String> upSelectorIds = GsonUtils.getInstance().fromList(updateData, String.class);
                    watcherRule(selectorId, upSelectorIds, pluginName, namespaceId);
                });

            watcherRule(selectorId, ruleIds, pluginName, namespaceId);
        });
    }
watchCommonList.
examples data:
 meta.list
  -> meta.id
  -> meta.id
  -> meta.id
@param keyPrefix keyPrefix
@param updateHandler updateHandler
@param deleteHandler deleteHandler
shenyu-sync-data-center/shenyu-sync-data-api/src/main/java/org/apache/shenyu/sync/data/core/AbstractNodeDataSyncService.java