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