package com.weibo.utils;
import com.ecwid.consul.v1.ConsulClient;
import com.weibo.api.motan.exception.MotanFrameworkException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Component
@Lazy
@Scope("singleton")
public class ConsulClientWrapper {
@Value("${registry.url}")
private String registryUrl;
private ConsulClient consulClient;
@PostConstruct
void init() {
try {
String[] arr = registryUrl.split(":");
String host = arr[0];
int port = Integer.parseInt(arr[1]);
consulClient = new ConsulClient(host, port);
} catch (Exception e) {
throw new MotanFrameworkException("Fail to connect consul, cause: " + e.getMessage());
}
}
@PreDestroy
void destory() {
consulClient = null;
}
public ConsulClient getConsulClient() {
return consulClient;
}
}