protected CuratorFramework getZkClient() {
        return this.zkClient;
    }
@Test
    public void testZooKeeperDataSourceSameZkClient() throws Exception {
        TestingServer server = new TestingServer(21813);
        server.start();

        final String remoteAddress = server.getConnectString();
        final String flowPath = "/sentinel-zk-ds-demo/flow-HK";
        final String degradePath = "/sentinel-zk-ds-demo/degrade-HK";


        ZookeeperDataSource<List<FlowRule>> flowRuleZkDataSource = new ZookeeperDataSource<>(remoteAddress, flowPath,
                new Converter<String, List<FlowRule>>() {
                    @Override
                    public List<FlowRule> convert(String source) {
                        return JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
                        });
                    }
                });
        ZookeeperDataSource<List<DegradeRule>> degradeRuleZkDataSource = new ZookeeperDataSource<>(remoteAddress, degradePath,
                new Converter<String, List<DegradeRule>>() {
                    @Override
                    public List<DegradeRule> convert(String source) {
                        return JSON.parseObject(source, new TypeReference<List<DegradeRule>>() {
                        });
                    }
                });


        Assert.assertTrue(flowRuleZkDataSource.getZkClient() == degradeRuleZkDataSource.getZkClient());


        final String groupId = "sentinel-zk-ds-demo";
        final String flowDataId = "flow-HK";
        final String degradeDataId = "degrade-HK";
        final String scheme = "digest";
        final String auth = "root:123456";
        AuthInfo authInfo = new AuthInfo(scheme, auth.getBytes());
        List<AuthInfo> authInfoList = Collections.singletonList(authInfo);


        ZookeeperDataSource<List<FlowRule>> flowRuleZkAutoDataSource = new ZookeeperDataSource<List<FlowRule>>(remoteAddress,
                authInfoList, groupId, flowDataId,
                new Converter<String, List<FlowRule>>() {
                    @Override
                    public List<FlowRule> convert(String source) {
                        return JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
                        });
                    }
                });

        ZookeeperDataSource<List<DegradeRule>> degradeRuleZkAutoDataSource = new ZookeeperDataSource<List<DegradeRule>>(remoteAddress,
                authInfoList, groupId, degradeDataId,
                new Converter<String, List<DegradeRule>>() {
                    @Override
                    public List<DegradeRule> convert(String source) {
                        return JSON.parseObject(source, new TypeReference<List<DegradeRule>>() {
                        });
                    }
                });

        Assert.assertTrue(flowRuleZkAutoDataSource.getZkClient() == degradeRuleZkAutoDataSource.getZkClient());

        server.stop();
    }