@Override
	public AddressHolder subscribe(ServiceMetadata metadata) {
		AddressHolder addressHolder = new AddressHolder();
		try {
			zkUtil.createConnection();

			addressHolder.putAddresses(metadata.getInterfaceName(),zkUtil.getProviders(metadata.getInterfaceName()));

			zkUtil.releaseConnection();
			if(addressHolder.size() > 0)
				return addressHolder;
		} catch (IOException e) {
			logger.error("fail to connect zk server!");
		} catch (InterruptedException e) {
			logger.error("fail to release zk connection!");
		}
		return addressHolder;
	}