public ZkService chooseService() {
        if (zkService != null) {
            return zkService;
        }
        synchronized (this) {
            if (zkService == null) {
                final String version = lbConfig.getZkServerVersion();
                if (version.startsWith(VERSION_34_PREFIX)) {
                    zkService = PluginServiceManager.getPluginService(ZkService34.class);
                }
            }
        }
        if (zkService == null) {
            throw new IllegalArgumentException(String.format(Locale.ENGLISH,
                    "Can not get target zookeeper client version(%s) service", lbConfig.getZkServerVersion()));
        }
        return zkService;
    }
@Test
    public void chooseServiceWithVersion() {
        lbConfig.setZkServerVersion("3.4.14");
        final ZkService34 service34 = Mockito.mock(ZkService34.class);
        try (final MockedStatic<PluginServiceManager> pluginServiceManagerMockedStatic =
                Mockito.mockStatic(PluginServiceManager.class)){
            pluginServiceManagerMockedStatic.when(() -> PluginServiceManager.getPluginService(ZkService34.class))
            .thenReturn(service34);
            final ZkServiceManager zkServiceManager = new ZkServiceManager();
            Assert.assertEquals(zkServiceManager.chooseService(), service34);
        }
    }