nacos改为通过它后端接口获取服务列表

This commit is contained in:
暮光:城中城
2019-07-02 23:50:31 +08:00
parent dc4d1e1c65
commit 0214934b1f
4 changed files with 89 additions and 12 deletions

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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: