nacos改为通过它后端接口获取服务列表
This commit is contained in:
@@ -6,6 +6,8 @@ import com.zyplayer.doc.core.annotation.AuthMan;
|
||||
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||
import com.zyplayer.doc.dubbo.controller.param.DubboRequestParam;
|
||||
import com.zyplayer.doc.dubbo.controller.vo.DubboInfoVo;
|
||||
import com.zyplayer.doc.dubbo.controller.vo.NacosServiceInfoVo;
|
||||
import com.zyplayer.doc.dubbo.controller.vo.NacosServiceListVo;
|
||||
import com.zyplayer.doc.dubbo.framework.bean.DubboDocInfo;
|
||||
import com.zyplayer.doc.dubbo.framework.bean.DubboInfo;
|
||||
import com.zyplayer.doc.dubbo.framework.bean.NacosDubboInfo;
|
||||
@@ -64,8 +66,8 @@ public class DubboController {
|
||||
private String metadataZookeeperUrl;
|
||||
@Value("${zyplayer.doc.dubbo.nacos.url:}")
|
||||
private String nacosUrl;
|
||||
@Value("${zyplayer.doc.dubbo.nacos.service:}")
|
||||
private String nacosService;
|
||||
// @Value("${zyplayer.doc.dubbo.nacos.service:}")
|
||||
// private String nacosService;
|
||||
@Resource
|
||||
private MgDubboStorageService mgDubboStorageService;
|
||||
|
||||
@@ -113,7 +115,7 @@ public class DubboController {
|
||||
List<DubboInfo> providerList;
|
||||
try {
|
||||
if (StringUtils.isBlank(serviceZookeeperUrl)) {
|
||||
if (StringUtils.isBlank(nacosUrl) || StringUtils.isBlank(nacosService)) {
|
||||
if (StringUtils.isBlank(nacosUrl)) {// || StringUtils.isBlank(nacosService)) {
|
||||
return DocResponseJson.warn("zyplayer.doc.dubbo.zookeeper.url、zyplayer.doc.dubbo.nacos.url 参数均未配置");
|
||||
}
|
||||
logger.info("zookeeper参数未配置,使用nacos配置");
|
||||
@@ -303,9 +305,15 @@ public class DubboController {
|
||||
**/
|
||||
private List<DubboInfo> getDubboInfoByNacos() {
|
||||
List<DubboInfo> providerList = new LinkedList<>();
|
||||
String[] nacosServiceArr = nacosService.split(";");
|
||||
for (String service : nacosServiceArr) {
|
||||
String resultStr = HttpUtil.get(nacosUrl + "/v1/ns/instance/list?serviceName=providers:" + service);
|
||||
// 获取所有的服务列表
|
||||
String serviceListStr = HttpUtil.get(nacosUrl + "/v1/ns/catalog/serviceList?startPg=1&pgSize=100000");
|
||||
NacosServiceInfoVo nacosServiceInfoVo = JSON.parseObject(serviceListStr, NacosServiceInfoVo.class);
|
||||
if (nacosServiceInfoVo == null || nacosServiceInfoVo.getServiceList().isEmpty()) {
|
||||
return providerList;
|
||||
}
|
||||
for (NacosServiceListVo service : nacosServiceInfoVo.getServiceList()) {
|
||||
String serviceName = service.getName();
|
||||
String resultStr = HttpUtil.get(nacosUrl + "/v1/ns/instance/list?serviceName=" + serviceName);
|
||||
NacosDubboInfo dubboInstance = JSON.parseObject(resultStr, NacosDubboInfo.class);
|
||||
List<NacosDubboInfo.HostsBean> hosts = dubboInstance.getHosts();
|
||||
DubboInfo dubboInfo = new DubboInfo();
|
||||
@@ -319,7 +327,10 @@ public class DubboController {
|
||||
dubboNodeInfo.setApplication(host.getMetadata().getApplication());
|
||||
nodeList.add(dubboNodeInfo);
|
||||
}
|
||||
dubboInfo.setInterfaceX(service);
|
||||
if (serviceName.contains(":")) {
|
||||
serviceName = serviceName.substring(serviceName.indexOf(":") + 1);
|
||||
}
|
||||
dubboInfo.setInterfaceX(serviceName);
|
||||
dubboInfo.setNodeList(nodeList);
|
||||
providerList.add(dubboInfo);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.zyplayer.doc.dubbo.controller.vo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class NacosServiceInfoVo {
|
||||
|
||||
private int count;
|
||||
private List<NacosServiceListVo> serviceList;
|
||||
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void setCount(int count) {
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
public List<NacosServiceListVo> getServiceList() {
|
||||
return serviceList;
|
||||
}
|
||||
|
||||
public void setServiceList(List<NacosServiceListVo> serviceList) {
|
||||
this.serviceList = serviceList;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.zyplayer.doc.dubbo.controller.vo;
|
||||
|
||||
public class NacosServiceListVo {
|
||||
private String name;
|
||||
private int clusterCount;
|
||||
private int ipCount;
|
||||
private int healthyInstanceCount;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getClusterCount() {
|
||||
return clusterCount;
|
||||
}
|
||||
|
||||
public void setClusterCount(int clusterCount) {
|
||||
this.clusterCount = clusterCount;
|
||||
}
|
||||
|
||||
public int getIpCount() {
|
||||
return ipCount;
|
||||
}
|
||||
|
||||
public void setIpCount(int ipCount) {
|
||||
this.ipCount = ipCount;
|
||||
}
|
||||
|
||||
public int getHealthyInstanceCount() {
|
||||
return healthyInstanceCount;
|
||||
}
|
||||
|
||||
public void setHealthyInstanceCount(int healthyInstanceCount) {
|
||||
this.healthyInstanceCount = healthyInstanceCount;
|
||||
}
|
||||
}
|
||||
@@ -43,14 +43,14 @@ zyplayer:
|
||||
dubbo:
|
||||
# 优先使用zookeeper,未配置时找nacos的配置
|
||||
zookeeper:
|
||||
url: 127.0.0.1:2181
|
||||
# url: 127.0.0.1:2181
|
||||
# 服务参数那些信息的服务地址,dubbo7.0新特性
|
||||
# metadata-url: 127.0.0.1:2181
|
||||
nacos:
|
||||
# url: http://127.0.0.1:8848/nacos
|
||||
# 服务名称,多个使用 ; 分割,nacos没办法获取所有的服务列表,所以需要指定
|
||||
service: "com.zyplayer.dubbo.service.UserService;\
|
||||
com.zyplayer.dubbo.service.AnnotateService;"
|
||||
url: http://127.0.0.1:8848/nacos
|
||||
# 服务名称,多个使用 ; 分割,nacos没办法获取所有的服务列表,所以需要指定,好像通过后端接口可以获取,不知道后续版本会不会登录后才可以访问
|
||||
# service: "com.zyplayer.dubbo.service.UserService;\
|
||||
# com.zyplayer.dubbo.service.AnnotateService;"
|
||||
# ------数据库文档相关------
|
||||
# 打开/zyplayer_doc_manage/doc-db.html即可看到这里配置的数据库的文档
|
||||
db:
|
||||
|
||||
Reference in New Issue
Block a user