public static String buildUniqueString(Client client) {
        if (!(client instanceof IpPortBasedClient)) {
            return null;
        }
        StringBuilder sb = new StringBuilder();
        sb.append(client.getClientId()).append('|');
        client.getAllPublishedService().stream()
                .sorted(Comparator.comparing(DistroUtils::serviceKey))
                .forEach(s -> {
                    InstancePublishInfo ip = client.getInstancePublishInfo(s);
                    double weight = getWeight(ip);
                    Boolean enabled = getEnabled(ip);
                    String cluster = StringUtils.defaultIfBlank(ip.getCluster(), DEFAULT_CLUSTER_NAME);
                    sb.append(serviceKey(s)).append('_')
                            .append(ip.getIp()).append(':').append(ip.getPort()).append('_')
                            .append(weight).append('_')
                            .append(ip.isHealthy()).append('_')
                            .append(enabled).append('_')
                            .append(cluster).append('_')
                            .append(convertMap2String(ip.getExtendDatum()))
                            .append(',');
                });
        return sb.toString();
    }
@Test
    void testBuildUniqueString0() {
        assertEquals("127.0.0.1:8848#false|testNamespace-1##testGroup-1@@testName-1##false_127.0.0.1:8848_1.0_true_true_DEFAULT_,",
                DistroUtils.buildUniqueString(client0));
    }