private void saveDiscoveryUpstreamData(final SelectorData defaultSelectorData) {
        DiscoverySyncData discoverySyncData = new DiscoverySyncData();
        discoverySyncData.setSelectorId(defaultSelectorData.getId());
        discoverySyncData.setSelectorName(defaultSelectorData.getName());
        discoverySyncData.setPluginName(defaultSelectorData.getPluginName());
        List<DivideUpstream> upstreamList = GsonUtils.getInstance().fromList(defaultSelectorData.getHandle(), DivideUpstream.class);
        if (CollectionUtils.isNotEmpty(upstreamList)) {
            List<DiscoveryUpstreamData> discoveryUpstreamDataList = upstreamList.stream().map(up -> {
                DiscoveryUpstreamData upstreamData = new DiscoveryUpstreamData();
                upstreamData.setUrl(up.getUpstreamUrl());
                upstreamData.setProtocol(up.getProtocol());
                upstreamData.setWeight(up.getWeight());
                upstreamData.setStatus(up.isStatus() ? 0 : 1);
                Properties properties = new Properties();
                properties.setProperty("warmup", String.valueOf(up.getWarmup()));
                properties.setProperty("upstreamHost", String.valueOf(up.getUpstreamHost()));
                upstreamData.setDateUpdated(Optional.of(up.getTimestamp()).map(Timestamp::new).orElse(new Timestamp(System.currentTimeMillis())));
                upstreamData.setProps(GsonUtils.getInstance().toJson(properties));
                upstreamData.setDateCreated(Optional.of(up.getTimestamp()).map(Timestamp::new).orElse(new Timestamp(System.currentTimeMillis())));
                return upstreamData;
            }).collect(Collectors.toList());
            discoverySyncData.setUpstreamDataList(discoveryUpstreamDataList);
            discoveryUpstreamDataSubscriber.onSubscribe(discoverySyncData);
        }
    }
Save selector mono.

@param selectorData the selector data
@return the mono
shenyu-web/src/main/java/org/apache/shenyu/web/controller/LocalPluginController.java