From 92ca7fcd4e7aa304447ec631124a7872ecd90440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E5=85=89=EF=BC=9A=E5=9F=8E=E4=B8=AD=E5=9F=8E?= <806783409@qq.com> Date: Tue, 12 Feb 2019 21:33:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0dubbo=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 3 +- zyplayer-doc-dubbo/pom.xml | 279 ++++++++++++++ .../doc/dubbo/controller/DubboController.java | 126 +++++++ .../doc/dubbo/framework/bean/DubboInfo.java | 56 +++ .../dubbo/framework/bean/NacosDubboInfo.java | 343 ++++++++++++++++++ .../framework/bean/ReferenceConfigHolder.java | 39 ++ .../framework/config/EnableDocDubbo.java | 16 + .../src/main/resources/demo.txt | 57 +++ zyplayer-doc-manage/pom.xml | 7 + .../framework/config/DocDubboConfig.java | 14 + .../src/main/resources/application.yml | 9 + 11 files changed, 948 insertions(+), 1 deletion(-) create mode 100644 zyplayer-doc-dubbo/pom.xml create mode 100644 zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/controller/DubboController.java create mode 100644 zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/DubboInfo.java create mode 100644 zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/NacosDubboInfo.java create mode 100644 zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/ReferenceConfigHolder.java create mode 100644 zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java create mode 100644 zyplayer-doc-dubbo/src/main/resources/demo.txt create mode 100644 zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocDubboConfig.java diff --git a/pom.xml b/pom.xml index bbb1f15a..d277bba1 100644 --- a/pom.xml +++ b/pom.xml @@ -48,5 +48,6 @@ zyplayer-doc-manage zyplayer-doc-swagger zyplayer-doc-core + zyplayer-doc-dubbo - \ No newline at end of file + diff --git a/zyplayer-doc-dubbo/pom.xml b/zyplayer-doc-dubbo/pom.xml new file mode 100644 index 00000000..d5b94dad --- /dev/null +++ b/zyplayer-doc-dubbo/pom.xml @@ -0,0 +1,279 @@ + + + 4.0.0 + com.zyplayer + zyplayer-doc-dubbo + 1.0.1 + jar + zyplayer-doc-dubbo + + dubbo文档工具 + https://gitee.com/zyplayer/zyplayer-doc/zyplayer-doc-dubbo + + + zyplayer + 暮光:城中城 + 806783409@qq.com + + Java Development Engineer + + 2018-05-22 16:06:06 + + + + + org.springframework.boot + spring-boot-starter-parent + 1.4.2.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + + true + ${project.build.outputDirectory}/META-INF/resources/webjars/${project.artifactId}/${project.version} + 1.0.0 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-jta-atomikos + + + org.mybatis + mybatis + 3.4.6 + + + org.mybatis + mybatis-spring + 1.3.0 + + + io.springfox + springfox-swagger2 + 2.7.0 + + + com.alibaba + fastjson + 1.2.44 + + + cn.hutool + hutool-http + 4.1.8 + + + commons-lang + commons-lang + 2.6 + + + org.apache.curator + curator-recipes + 2.12.0 + + + com.zyplayer + zyplayer-doc-core + ${zyplayer.doc.core.version} + + + + + com.alibaba.boot + dubbo-spring-boot-starter + 0.2.0 + + + com.alibaba.boot + dubbo-spring-boot-actuator + 0.2.0 + + + + com.alibaba.boot + nacos-config-spring-boot-starter + 0.2.1 + + + + com.alibaba + dubbo-registry-nacos + 0.0.1 + + + + com.alibaba + dubbo + 2.6.5 + + + + com.alibaba.spring + spring-context-support + 1.0.2 + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + scm:git@git.oschina.net:zyplayer/zyplayer-doc.git + scm:git@git.oschina.net:zyplayer/zyplayer-doc.git + git@git.oschina.net:zyplayer/zyplayer-doc.git + + + + + snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + snapshots + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + src/main/resources + META-INF/resources/ + + + src/main/java + + **/* + + + **/*.java + + false + + + src/main/webapp + + **/* + + false + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.2 + + true + + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + UTF-8 + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18.1 + + ${skipTests} + + + + + + + release + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.2 + + true + + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + verify + + sign + + + + + + + + + diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/controller/DubboController.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/controller/DubboController.java new file mode 100644 index 00000000..268e9276 --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/controller/DubboController.java @@ -0,0 +1,126 @@ +package com.zyplayer.doc.dubbo.controller; + +import cn.hutool.http.HttpUtil; +import com.alibaba.dubbo.rpc.service.GenericService; +import com.alibaba.fastjson.JSON; +import com.zyplayer.doc.core.json.DocResponseJson; +import com.zyplayer.doc.dubbo.framework.bean.DubboInfo; +import com.zyplayer.doc.dubbo.framework.bean.NacosDubboInfo; +import com.zyplayer.doc.dubbo.framework.bean.ReferenceConfigHolder; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; +import org.apache.curator.RetryPolicy; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.retry.ExponentialBackoffRetry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.net.URLDecoder; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 文档控制器 + * + * @author 暮光:城中城 + * @since 2018年8月8日 + */ +@RestController +@RequestMapping("/zyplayer-doc-dubbo/doc-dubbo") +public class DubboController { + private static Logger logger = LoggerFactory.getLogger(DubboController.class); + + @Value("${zyplayer.doc.dubbo.zookeeper.url:}") + private String zookeeperUrl; + @Value("${zyplayer.doc.dubbo.nacos.url:}") + private String nacosUrl; + @Value("${zyplayer.doc.dubbo.nacos.service:}") + private String nacosService; + + @GetMapping(value = "/getList") + public DocResponseJson getDataSourceList() throws Exception { + List providerList; + if (StringUtils.isBlank(zookeeperUrl)) { + if (StringUtils.isBlank(nacosUrl) || StringUtils.isBlank(nacosService)) { + return DocResponseJson.warn("zyplayer.doc.dubbo.zookeeper.url、zyplayer.doc.dubbo.nacos.url 参数均未配置"); + } + logger.info("zookeeper参数未配置,使用nacos配置"); + providerList = this.getDubboInfoByNacos(); + } else { + providerList = this.getDubboInfoByZookeeper(); + } + GenericService bean = ReferenceConfigHolder.getBean(providerList.get(0)); + Object o = bean.$invoke("getUserList", new String[]{}, new String[]{}); + System.out.println(o); + return DocResponseJson.ok(providerList); + } + + private List getDubboInfoByNacos() { + List providerList = new LinkedList<>(); + String[] nacosServiceArr = nacosService.split(";"); + for (String service : nacosServiceArr) { + String resultStr = HttpUtil.get(nacosUrl + "/v1/ns/instance/list?serviceName=" + service); + NacosDubboInfo dubboInstance = JSON.parseObject(resultStr, NacosDubboInfo.class); + List hosts = dubboInstance.getHosts(); + for (NacosDubboInfo.HostsBean host : hosts) { + DubboInfo dubboInfo = new DubboInfo(); + dubboInfo.setIp(host.getIp()); + dubboInfo.setPort(host.getPort()); + dubboInfo.setInterfaceX(host.getMetadata().getInterfaceX()); + dubboInfo.setMethods(host.getMetadata().getMethods().split(",")); + dubboInfo.setApplication(host.getMetadata().getApplication()); + providerList.add(dubboInfo); + } + } + return providerList; + } + + private List getDubboInfoByZookeeper() throws Exception { + RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); + CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperUrl, retryPolicy); + client.start(); + List dubboList = client.getChildren().forPath("/dubbo"); + if (dubboList == null || dubboList.isEmpty()) { + return Collections.emptyList(); + } + List providerList = new LinkedList<>(); + for (String dubboStr : dubboList) { + List providers = client.getChildren().forPath("/dubbo/" + dubboStr + "/providers"); + List dubboInfoList = providers.stream().map(val -> { + String tempStr = val; + try { + tempStr = URLDecoder.decode(val, "utf-8"); + } catch (Exception e) { + e.printStackTrace(); + } + // IP和端口 + String ipPort = tempStr.substring(tempStr.indexOf("://") + 3); + ipPort = ipPort.substring(0, ipPort.indexOf("/")); + String[] ipPortArr = ipPort.split(":"); + // 参数 + Map paramMap = new HashMap<>(); + String params = tempStr.substring(tempStr.indexOf("?")); + String[] paramsArr = params.split("&"); + for (String param : paramsArr) { + String[] split = param.split("="); + paramMap.put(split[0], split[1]); + } + DubboInfo dubboInfo = new DubboInfo(); + dubboInfo.setIp(ipPortArr[0]); + dubboInfo.setPort(NumberUtils.toInt(ipPortArr[1])); + dubboInfo.setInterfaceX(paramMap.get("interface")); + dubboInfo.setMethods(paramMap.get("methods").split(",")); + dubboInfo.setApplication(paramMap.get("application")); + return dubboInfo; + }).collect(Collectors.toList()); + providerList.addAll(dubboInfoList); + } + return providerList; + } +} + diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/DubboInfo.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/DubboInfo.java new file mode 100644 index 00000000..ae96e796 --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/DubboInfo.java @@ -0,0 +1,56 @@ +package com.zyplayer.doc.dubbo.framework.bean; + +import com.alibaba.fastjson.annotation.JSONField; + +/** + * @author 暮光:城中城 + * @since 2019年1月10日 + **/ +public class DubboInfo { + private Integer port; + private String ip; + @JSONField(name = "interface") + private String interfaceX; + private String[] methods; + private String application; + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + this.port = port; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getInterfaceX() { + return interfaceX; + } + + public void setInterfaceX(String interfaceX) { + this.interfaceX = interfaceX; + } + + public String[] getMethods() { + return methods; + } + + public void setMethods(String[] methods) { + this.methods = methods; + } + + public String getApplication() { + return application; + } + + public void setApplication(String application) { + this.application = application; + } +} diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/NacosDubboInfo.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/NacosDubboInfo.java new file mode 100644 index 00000000..ae55fb47 --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/NacosDubboInfo.java @@ -0,0 +1,343 @@ +package com.zyplayer.doc.dubbo.framework.bean; + +import com.alibaba.fastjson.annotation.JSONField; + +import java.util.List; + +/** + * @author 暮光:城中城 + * @since 2019年1月10日 + **/ +public class NacosDubboInfo { + + /** + * metadata : {} + * dom : providers:com.zyplayer.dubbo.service.UserService + * cacheMillis : 10000 + * useSpecifiedURL : false + * hosts : [{"valid":true,"marked":false,"metadata":{"side":"provider","protocol":"dubbo","application":"dubbo-provider","methods":"getUserDetail,getUserList","dubbo":"2.0.2","pid":"8164","interface":"com.zyplayer.dubbo.service.UserService","category":"providers","generic":"false","anyhost":"true","bean.name":"ServiceBean:com.zyplayer.dubbo.service.UserService","timestamp":"1549953970871"},"instanceId":"127.0.0.1#22223#DEFAULT#providers:com.zyplayer.dubbo.service.UserService","port":22223,"ip":"127.0.0.1","clusterName":"DEFAULT","weight":1,"serviceName":"providers:com.zyplayer.dubbo.service.UserService","enabled":true}] + * checksum : 2489ae2874f2f490caf7d6195192d6c71549954548862 + * lastRefTime : 1549954548862 + * env : + * clusters : + */ + + private MetadataBean metadata; + private String dom; + private int cacheMillis; + private boolean useSpecifiedURL; + private String checksum; + private long lastRefTime; + private String env; + private String clusters; + private List hosts; + + public MetadataBean getMetadata() { + return metadata; + } + + public void setMetadata(MetadataBean metadata) { + this.metadata = metadata; + } + + public String getDom() { + return dom; + } + + public void setDom(String dom) { + this.dom = dom; + } + + public int getCacheMillis() { + return cacheMillis; + } + + public void setCacheMillis(int cacheMillis) { + this.cacheMillis = cacheMillis; + } + + public boolean isUseSpecifiedURL() { + return useSpecifiedURL; + } + + public void setUseSpecifiedURL(boolean useSpecifiedURL) { + this.useSpecifiedURL = useSpecifiedURL; + } + + public String getChecksum() { + return checksum; + } + + public void setChecksum(String checksum) { + this.checksum = checksum; + } + + public long getLastRefTime() { + return lastRefTime; + } + + public void setLastRefTime(long lastRefTime) { + this.lastRefTime = lastRefTime; + } + + public String getEnv() { + return env; + } + + public void setEnv(String env) { + this.env = env; + } + + public String getClusters() { + return clusters; + } + + public void setClusters(String clusters) { + this.clusters = clusters; + } + + public List getHosts() { + return hosts; + } + + public void setHosts(List hosts) { + this.hosts = hosts; + } + + public static class MetadataBean { + } + + public static class HostsBean { + /** + * valid : true + * marked : false + * metadata : {"side":"provider","protocol":"dubbo","application":"dubbo-provider","methods":"getUserDetail,getUserList","dubbo":"2.0.2","pid":"8164","interface":"com.zyplayer.dubbo.service.UserService","category":"providers","generic":"false","anyhost":"true","bean.name":"ServiceBean:com.zyplayer.dubbo.service.UserService","timestamp":"1549953970871"} + * instanceId : 127.0.0.1#22223#DEFAULT#providers:com.zyplayer.dubbo.service.UserService + * port : 22223 + * ip : 127.0.0.1 + * clusterName : DEFAULT + * weight : 1 + * serviceName : providers:com.zyplayer.dubbo.service.UserService + * enabled : true + */ + + private boolean valid; + private boolean marked; + private MetadataBeanX metadata; + private String instanceId; + private int port; + private String ip; + private String clusterName; + private int weight; + private String serviceName; + private boolean enabled; + + public boolean isValid() { + return valid; + } + + public void setValid(boolean valid) { + this.valid = valid; + } + + public boolean isMarked() { + return marked; + } + + public void setMarked(boolean marked) { + this.marked = marked; + } + + public MetadataBeanX getMetadata() { + return metadata; + } + + public void setMetadata(MetadataBeanX metadata) { + this.metadata = metadata; + } + + public String getInstanceId() { + return instanceId; + } + + public void setInstanceId(String instanceId) { + this.instanceId = instanceId; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getClusterName() { + return clusterName; + } + + public void setClusterName(String clusterName) { + this.clusterName = clusterName; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + + public String getServiceName() { + return serviceName; + } + + public void setServiceName(String serviceName) { + this.serviceName = serviceName; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public static class MetadataBeanX { + /** + * side : provider + * protocol : dubbo + * application : dubbo-provider + * methods : getUserDetail,getUserList + * dubbo : 2.0.2 + * pid : 8164 + * interface : com.zyplayer.dubbo.service.UserService + * category : providers + * generic : false + * anyhost : true + * bean.name : ServiceBean:com.zyplayer.dubbo.service.UserService + * timestamp : 1549953970871 + */ + + private String side; + private String protocol; + private String application; + private String methods; + private String dubbo; + private String pid; + @JSONField(name = "interface") + private String interfaceX; + private String category; + private String generic; + private String anyhost; + @JSONField(name = "bean.name") + private String _$BeanName0; // FIXME check this code + private String timestamp; + + public String getSide() { + return side; + } + + public void setSide(String side) { + this.side = side; + } + + public String getProtocol() { + return protocol; + } + + public void setProtocol(String protocol) { + this.protocol = protocol; + } + + public String getApplication() { + return application; + } + + public void setApplication(String application) { + this.application = application; + } + + public String getMethods() { + return methods; + } + + public void setMethods(String methods) { + this.methods = methods; + } + + public String getDubbo() { + return dubbo; + } + + public void setDubbo(String dubbo) { + this.dubbo = dubbo; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getInterfaceX() { + return interfaceX; + } + + public void setInterfaceX(String interfaceX) { + this.interfaceX = interfaceX; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getGeneric() { + return generic; + } + + public void setGeneric(String generic) { + this.generic = generic; + } + + public String getAnyhost() { + return anyhost; + } + + public void setAnyhost(String anyhost) { + this.anyhost = anyhost; + } + + public String get_$BeanName0() { + return _$BeanName0; + } + + public void set_$BeanName0(String _$BeanName0) { + this._$BeanName0 = _$BeanName0; + } + + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(String timestamp) { + this.timestamp = timestamp; + } + } + } +} diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/ReferenceConfigHolder.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/ReferenceConfigHolder.java new file mode 100644 index 00000000..600a947a --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/bean/ReferenceConfigHolder.java @@ -0,0 +1,39 @@ +package com.zyplayer.doc.dubbo.framework.bean; + +import com.alibaba.dubbo.config.ApplicationConfig; +import com.alibaba.dubbo.config.ReferenceConfig; +import com.alibaba.dubbo.rpc.service.GenericService; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author 暮光:城中城 + * @since 2019年1月10日 + **/ +public class ReferenceConfigHolder { + private static Map referenceConfigMap = new ConcurrentHashMap<>(); + + public static GenericService getBean(DubboInfo dubboInfo) { + String name = dubboInfo.getInterfaceX(); + String url = "dubbo://" + dubboInfo.getIp() + ":" + dubboInfo.getPort() + "/" + dubboInfo.getInterfaceX(); + ReferenceConfig referenceConfig = referenceConfigMap.get(name); + if (referenceConfig == null) { + ApplicationConfig application = new ApplicationConfig(); + application.setName("zyplayer-doc-consume"); + // 参考:http://dubbo.apache.org/zh-cn/docs/user/configuration/api.html + // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏 + referenceConfig = new ReferenceConfig<>(); + // 如果点对点直连,可以用reference.setUrl()指定目标地址,设置url后将绕过注册中心, + // 其中,协议对应provider.setProtocol()的值,端口对应provider.setPort()的值, + // 路径对应service.setPath()的值,如果未设置path,缺省path为接口名 + referenceConfig.setUrl(url); + referenceConfig.setInterface(name.substring(name.lastIndexOf(".") + 1)); + referenceConfig.setGeneric(true); + referenceConfig.setApplication(application); + referenceConfigMap.put(name, referenceConfig); + } + return (GenericService) referenceConfig.get(); + } + +} diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java new file mode 100644 index 00000000..7f627b4d --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java @@ -0,0 +1,16 @@ +package com.zyplayer.doc.dubbo.framework.config; + +import org.springframework.context.annotation.ComponentScan; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@Target(value = { java.lang.annotation.ElementType.TYPE }) +@Documented +@ComponentScan(basePackages = { + "com.zyplayer.doc.dubbo", +}) +public @interface EnableDocDubbo { +} diff --git a/zyplayer-doc-dubbo/src/main/resources/demo.txt b/zyplayer-doc-dubbo/src/main/resources/demo.txt new file mode 100644 index 00000000..05d67ebb --- /dev/null +++ b/zyplayer-doc-dubbo/src/main/resources/demo.txt @@ -0,0 +1,57 @@ + +zookeeper 格式: +路劲:ls /dubbo/com.zyplayer.dubbo.service.UserService/providers +格式: +dubbo://127.0.0.1:22223/com.zyplayer.dubbo.service.UserService + ?anyhost=true + &application=dubbo-provider + &bean.name=ServiceBean:com.zyplayer.dubbo.service.UserService + &dubbo=2.0.2 + &generic=false + &interface=com.zyplayer.dubbo.service.UserService + &methods=getUserDetail,getUserList + &pid=36580 + &side=provider + ×tamp=1549955979708 + +nacos 格式: +文档:https://nacos.io/zh-cn/docs/open-API.html +请求地址:http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=providers:com.zyplayer.dubbo.service.UserService +格式: +{ + "metadata": {}, + "dom": "providers:com.zyplayer.dubbo.service.UserService", + "cacheMillis": 10000, + "useSpecifiedURL": false, + "hosts": [{ + "valid": true, + "marked": false, + "metadata": { + "side": "provider", + "protocol": "dubbo", + "application": "dubbo-provider", + "methods": "getUserDetail,getUserList", + "dubbo": "2.0.2", + "pid": "8164", + "interface": "com.zyplayer.dubbo.service.UserService", + "category": "providers", + "generic": "false", + "anyhost": "true", + "bean.name": "ServiceBean:com.zyplayer.dubbo.service.UserService", + "timestamp": "1549953970871" + }, + "instanceId": "127.0.0.1#22223#DEFAULT#providers:com.zyplayer.dubbo.service.UserService", + "port": 22223, + "ip": "127.0.0.1", + "clusterName": "DEFAULT", + "weight": 1.0, + "serviceName": "providers:com.zyplayer.dubbo.service.UserService", + "enabled": true + }], + "checksum": "2489ae2874f2f490caf7d6195192d6c71549955797122", + "lastRefTime": 1549955797122, + "env": "", + "clusters": "" +} + + diff --git a/zyplayer-doc-manage/pom.xml b/zyplayer-doc-manage/pom.xml index d5244ef7..d251c697 100644 --- a/zyplayer-doc-manage/pom.xml +++ b/zyplayer-doc-manage/pom.xml @@ -31,6 +31,7 @@ 2.9.2 2.9.2 1.0.1 + 1.0.1 @@ -94,6 +95,12 @@ zyplayer-doc-db ${zyplayer.doc.db.version} + + + com.zyplayer + zyplayer-doc-dubbo + ${zyplayer.doc.dubbo.version} + com.zyplayer diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocDubboConfig.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocDubboConfig.java new file mode 100644 index 00000000..58177c95 --- /dev/null +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocDubboConfig.java @@ -0,0 +1,14 @@ +package com.zyplayer.doc.manage.framework.config; + +import com.zyplayer.doc.dubbo.framework.config.EnableDocDubbo; +import org.springframework.context.annotation.Configuration; + +/** + * @Author + * @Date 2018/11/11 + **/ +@EnableDocDubbo +@Configuration +public class DocDubboConfig { + +} diff --git a/zyplayer-doc-manage/src/main/resources/application.yml b/zyplayer-doc-manage/src/main/resources/application.yml index 4194657b..bb4c0b60 100644 --- a/zyplayer-doc-manage/src/main/resources/application.yml +++ b/zyplayer-doc-manage/src/main/resources/application.yml @@ -11,6 +11,15 @@ server: zyplayer: doc: + # dubbo相关配置 + dubbo: +# zookeeper: +# url: 127.0.0.1:2181 + nacos: + url: http://127.0.0.1:8848/nacos + # 服务名称,多个使用 ; 分割 + service: providers:com.zyplayer.dubbo.service.UserService;providers:com.zyplayer.dubbo.service.AnnotateService; + # swagger相关配置 swagger: proxy-request: # 允许代理请求的域名,正则表达式,多个使用 ; 分割,必须设置,防止通过代理接口访问到内部资源,实在觉得没必要可设置为:.+