nacos_api实现服务注册和下线

采用api注册服务和下线服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
public class Nacos {

private String nacosAddress;

public static final String gameServerName = "game-server";

/**
* @param nacosAddress nacos服务ip端口 127.0.0.1:8848
*/
public Nacos(String nacosAddress) {
this.nacosAddress = nacosAddress;
}

/**
* 注册到nacos
*
* @param ip 服务地址127.0.0.1
* @param port 服务端口 8080
*/
public void registerInstance(String ip, int port) {
registerInstance(null, ip, port);
}

/**
* 注册到nacos
*
* @param groupName 组
* @param ip 服务地址127.0.0.1
* @param port 服务端口 8080
*/
public void registerInstance(String groupName, String ip, int port) {
try {
//获取nacos服务
NamingService namingService = NamingFactory.createNamingService(nacosAddress);
//将服务注册到注册中心
if (StringUtils.isBlank(groupName)) {
namingService.registerInstance(gameServerName, ip, port);
} else {
namingService.registerInstance(gameServerName, groupName, ip, port);
}
} catch (NacosException e) {
LogUtil.error("注册实例失败", e);
}
}

/**
* 下线服务
* @param ip
* @param port
*/
public void deregisterInstance(String ip, int port) {
registerInstance(null, ip, port);
}

/**
* 下线服务
* @param groupName
* @param ip
* @param port
*/
public void deregisterInstance(String groupName, String ip, int port) {
try {
//获取nacos服务
NamingService namingService = NamingFactory.createNamingService(nacosAddress);
//将服务注册到注册中心
if (StringUtils.isBlank(groupName)) {
namingService.deregisterInstance(gameServerName, ip, port);
} else {
namingService.deregisterInstance(gameServerName, groupName, ip, port);
}
} catch (NacosException e) {
LogUtil.error("下线实例失败", e);
}
}

public Instance selectOneHealthyInstance(String serviceName) {
return selectOneHealthyInstance(serviceName, null);
}

public Instance selectOneHealthyInstance(String serviceName, String groupName) {
try {
//获取nacos服务
NamingService namingService = NamingFactory.createNamingService(nacosAddress);
//将服务注册到注册中心
Instance instance;
if (StringUtils.isBlank(groupName)) {
instance = namingService.selectOneHealthyInstance(serviceName);
} else {
instance = namingService.selectOneHealthyInstance(serviceName, groupName);
}
return instance;
} catch (NacosException e) {
LogUtil.error("获取服务实例失败", e);
}
return null;
}
}

nacos_api实现服务注册和下线
http://ysocket.pages.dev/2020/12/11/use_nacos_api/
作者
YSocket
发布于
20201211
许可协议