使用nacos注册服务信息。参考文档https://nacos.io/zh-cn/docs/v2/guide/user/sdk.html
使用依赖
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.3</version>
</dependency>
编辑代码,主要实现服务的基本注册,服务发现信息。这里为了简便就写死数据信息。
public class NacosRegistry {
private NamingService namingService;
/**
* 服务链接
* @param serverAddress
* @throws NacosException
*/
public void connect(String serverAddress) throws NacosException {
this.namingService = NamingFactory.createNamingService(serverAddress);
}
/**
* 注册服务信息
* @param serviceName
* @throws NacosException
*/
public void register(String serviceName) throws NacosException {
String host = "127.0.0.1";
int port = 8080;
Instance instance = new Instance();
instance.setPort(port);
instance.setIp(host);
instance.setServiceName(serviceName);
this.namingService.registerInstance(serviceName,instance);
}
/**
* 根据服务名称获取服务的ip+port
* @param serviceName
* @return
* @throws NacosException
*/
public String discovery(String serviceName) throws NacosException {
List<Instance> allInstances = this.namingService.getAllInstances(serviceName);
if(allInstances == null || allInstances.isEmpty()){
return null;
}
Random random = new Random();
int i = random.nextInt(allInstances.size());
Instance instance = allInstances.get(i);
return instance.getIp()+":"+instance.getPort();
}
}
测试代码
public static void main(String[] args) throws NacosException {
NacosRegistry nacosRegistry = new NacosRegistry();
nacosRegistry.connect("127.0.0.1:8848");
String serviceName = "nacosService";
nacosRegistry.register(serviceName);
String discovery = nacosRegistry.discovery(serviceName);
System.out.println(discovery);
try {
Thread.sleep(500000);
}catch (Exception e){
e.printStackTrace();
}
}
}