[dubbo] branch master updated: [Dubbo-4556] fix dubbo startup is slow (#4603)
This is an automated email from the ASF dual-hosted git repository. iluo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo.git The following commit(s) were added to refs/heads/master by this push: new 1173b40 [Dubbo-4556] fix dubbo startup is slow (#4603) 1173b40 is described below commit 1173b400949ceccc76182f7df9b39d35290d9148 Author: crossoverJie AuthorDate: Thu Aug 1 21:34:19 2019 +0800 [Dubbo-4556] fix dubbo startup is slow (#4603) * fix #4556 * :loud_sound: Adding logs. --- .../src/main/java/org/apache/dubbo/config/ServiceConfig.java| 2 ++ 1 file changed, 2 insertions(+) diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java index c0bd1e8..451ee83 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java @@ -682,6 +682,7 @@ public class ServiceConfig extends AbstractServiceConfig { if (isInvalidLocalHost(hostToBind)) { anyhost = true; try { +logger.info( "No valid ip found from environment, try to find valid host from DNS."); hostToBind = InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { logger.warn(e.getMessage(), e); @@ -726,6 +727,7 @@ public class ServiceConfig extends AbstractServiceConfig { return hostToRegistry; } + /** * Register port and bind port for the provider, can be configured separately * Configuration priority: environment variable -> java system properties -> port property in protocol config file
[dubbo-go] branch 1.1.0 created (now 7f0abe3)
This is an automated email from the ASF dual-hosted git repository. alexstocks pushed a change to branch 1.1.0 in repository https://gitbox.apache.org/repos/asf/dubbo-go.git. at 7f0abe3 Update README.md No new revisions were added by this update.
[dubbo-proxy] 10/15: code-style-refactor
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 67d9b4f18d47e4b321576917b720bd78d8a928fe Author: qixiaobo AuthorDate: Fri Jul 26 15:01:18 2019 +0800 code-style-refactor --- .../org/apache/dubbo/proxy/service/GenericInvoke.java | 19 +-- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 415fca4..2783361 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -24,7 +24,7 @@ public class GenericInvoke { GenericInvoke.registry = registry; } -public static void init() { +private static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); applicationConfig = new ApplicationConfig(); @@ -32,7 +32,7 @@ public class GenericInvoke { applicationConfig.setRegistry(registryConfig); } -private static ConcurrentHashMap cachedConfig = new ConcurrentHashMap<>(); +private static ConcurrentHashMap> cachedConfig = new ConcurrentHashMap<>(); private static Logger logger = LoggerFactory.getLogger(GenericInvoke.class); public static Object genericCall(String interfaceName, String group, @@ -41,7 +41,7 @@ public class GenericInvoke { if (init.compareAndSet(false, true)) { init(); } -ReferenceConfig reference = null; +ReferenceConfig reference; reference = addNewReference(interfaceName, group, version); try { @@ -49,8 +49,7 @@ public class GenericInvoke { logger.info("dubbo generic invoke, service is {}, method is {} , paramTypes is {} , paramObjs is {} , svc" + " is {}.", interfaceName , methodName,paramTypes,paramObjs,svc); -Object result = svc.$invoke(methodName, paramTypes, paramObjs); -return result; +return svc.$invoke(methodName, paramTypes, paramObjs); } catch (Exception e) { logger.error("Generic invoke failed",e); if (e instanceof RpcException) { @@ -72,9 +71,9 @@ public class GenericInvoke { } } -private static ReferenceConfig addNewReference(String interfaceName, - String group, String version) { -ReferenceConfig reference; +private static ReferenceConfig addNewReference(String interfaceName, + String group, String version) { +ReferenceConfig reference; String cachedKey = interfaceName + group + version; reference = cachedConfig.get(cachedKey); if (reference == null) { @@ -90,8 +89,8 @@ public class GenericInvoke { return reference; } -private static ReferenceConfig initReference(String interfaceName, String group, -String version) { +private static ReferenceConfig initReference(String interfaceName, String group, + String version) { ReferenceConfig reference = new ReferenceConfig<>(); reference.setGeneric(true); reference.setApplication(applicationConfig);
[dubbo-proxy] 14/15: change getRawParameter to getParameter because group never appears in special meta information
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit ddc6c5e695f8fea952073e02dc099466ffc095f2 Author: qixiaobo AuthorDate: Thu Aug 1 14:54:37 2019 +0800 change getRawParameter to getParameter because group never appears in special meta information ```java public String getRawParameter(String key) { if ("protocol".equals(key)) return protocol; if ("username".equals(key)) return username; if ("password".equals(key)) return password; if ("host".equals(key)) return host; if ("port".equals(key)) return String.valueOf(port); if ("path".equals(key)) return path; return getParameter(key); } ``` --- src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 0ba71b5..8c600b0 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -27,7 +27,7 @@ public class GenericInvoke { public static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); - registryConfig.setGroup(registry.getUrl().getRawParameter(org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY)); + registryConfig.setGroup(registry.getUrl().getParameter(org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY)); applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-proxy"); applicationConfig.setRegistry(registryConfig);
[dubbo-proxy] 15/15: Merge pull request #6 from qixiaobo/fix-group-for-register
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 9faa6a115e97fc19e83887a50073c1df5e57a994 Merge: 11dc687 ddc6c5e Author: min AuthorDate: Thu Aug 1 17:04:45 2019 +0800 Merge pull request #6 from qixiaobo/fix-group-for-register dubbo group not set for reference src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 1 + 1 file changed, 1 insertion(+) diff --cc src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 2783361,8c600b0..eccdcd8 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@@ -24,9 -24,10 +24,10 @@@ public class GenericInvoke GenericInvoke.registry = registry; } -public static void init() { +private static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); + registryConfig.setGroup(registry.getUrl().getParameter(org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY)); applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-proxy"); applicationConfig.setRegistry(registryConfig);
[dubbo-proxy] 09/15: Merge pull request #10 from qixiaobo/update-hsf-to-dubbo
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit fb6af3cbd393439568df739eb59b056dbd9feabb Merge: 6072531 f8384bf Author: Ian Luo AuthorDate: Fri Jul 26 13:53:42 2019 +0800 Merge pull request #10 from qixiaobo/update-hsf-to-dubbo update hsf to dubbo src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
[dubbo-proxy] 11/15: maybe we hava a method without args so it make a npe like below ``` Exception in thread "Dubbo-proxy-request-worker-pool-thread-3" java.lang.NullPointerException at org.apache.dub
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 660a69b607e3f424c45d2fe7c18962c5617a2702 Author: qixiaobo AuthorDate: Fri Jul 26 19:58:24 2019 +0800 maybe we hava a method without args so it make a npe like below ``` Exception in thread "Dubbo-proxy-request-worker-pool-thread-3" java.lang.NullPointerException at org.apache.dubbo.proxy.worker.RequestWorker.run(RequestWorker.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) ``` --- src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java b/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java index 60262a7..cc89b83 100644 --- a/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java +++ b/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java @@ -1,6 +1,7 @@ package org.apache.dubbo.proxy.worker; import com.alibaba.fastjson.JSON; + import org.apache.dubbo.proxy.dao.ServiceDefinition; import org.apache.dubbo.proxy.dao.ServiceMapping; import org.apache.dubbo.proxy.metadata.MetadataCollector; @@ -33,7 +34,7 @@ import static io.netty.handler.codec.http.HttpResponseStatus.OK; import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; -public class RequestWorker implements Runnable{ +public class RequestWorker implements Runnable { private ServiceDefinition serviceDefinition; private ChannelHandlerContext ctx; @@ -60,7 +61,7 @@ public class RequestWorker implements Runnable{ String interfaze = Tool.getInterface(serviceID); String group = Tool.getGroup(serviceID); String version = Tool.getVersion(serviceID); -if (serviceDefinition.getParamTypes() == null) { +if (serviceDefinition.getParamTypes() == null && serviceDefinition.getParamValues() != null) { String[] types = getTypesFromMetadata(serviceDefinition.getApplication(), interfaze, group, version, serviceDefinition.getMethodName(), serviceDefinition.getParamValues().length); serviceDefinition.setParamTypes(types); @@ -103,7 +104,7 @@ public class RequestWorker implements Runnable{ Set cookies = ServerCookieDecoder.STRICT.decode(cookieString); if (!cookies.isEmpty()) { // Reset the cookies if necessary. -for (Cookie cookie: cookies) { +for (Cookie cookie : cookies) { response.headers().add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.STRICT.encode(cookie)); } } @@ -119,7 +120,7 @@ public class RequestWorker implements Runnable{ MetadataIdentifier identifier = new MetadataIdentifier(interfaze, version, group, Constants.PROVIDER_SIDE, application); String metadata = metadataCollector.getProviderMetaData(identifier); FullServiceDefinition serviceDefinition = JSON.parseObject(metadata, FullServiceDefinition.class); -List methods = serviceDefinition.getMethods(); +List methods = serviceDefinition.getMethods(); if (methods != null) { for (MethodDefinition m : methods) { if (Tool.sameMethod(m, methodName, paramLen)) {
[dubbo-proxy] 13/15: Merge pull request #14 from qixiaobo/fix-no-args-method
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 11dc687ace493653a803e853b2feccd2be425721 Merge: 6130e36 660a69b Author: min AuthorDate: Thu Aug 1 14:53:49 2019 +0800 Merge pull request #14 from qixiaobo/fix-no-args-method dubbo-proxy throws npe while invoking no arguments method src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java | 9 + 1 file changed, 5 insertions(+), 4 deletions(-)
[dubbo-proxy] 07/15: dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit c4834856e312fe1086532ffe7e91d17e94cb6d74 Author: qixiaobo AuthorDate: Thu Jul 25 14:05:21 2019 +0800 dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5 merge master into current branch --- src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index f620855..0ba71b5 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -27,7 +27,7 @@ public class GenericInvoke { public static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); - registryConfig.setGroup(registry.getUrl().getRawParameter(org.apache.dubbo.common.Constants.GROUP_KEY)); + registryConfig.setGroup(registry.getUrl().getRawParameter(org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY)); applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-proxy"); applicationConfig.setRegistry(registryConfig);
[dubbo-proxy] 08/15: update hsf to dubbo
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit f8384bf7152e100e48ecae43a5932b324889da58 Author: qixiaobo AuthorDate: Fri Jul 26 12:56:58 2019 +0800 update hsf to dubbo --- src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 0bb4668..415fca4 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -46,7 +46,8 @@ public class GenericInvoke { try { GenericService svc = reference.get(); -logger.info("hsf generic invoke, service is {}, method is {} , paramTypes is {} , paramObjs is {} , svc is {}.", interfaceName +logger.info("dubbo generic invoke, service is {}, method is {} , paramTypes is {} , paramObjs is {} , svc" + +" is {}.", interfaceName , methodName,paramTypes,paramObjs,svc); Object result = svc.$invoke(methodName, paramTypes, paramObjs); return result;
[dubbo-proxy] 01/15: init commit
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 79882d9df36523d0c3af5d66b487bc64ca09e343 Author: nzomkxia AuthorDate: Mon Jun 3 16:42:58 2019 +0800 init commit --- .gitignore | 30 +++ README.md | 35 +++ README_zh.md | 32 +++ mvnw | 286 + mvnw.cmd | 161 pom.xml| 133 ++ src/main/java/org/apache/dubbo/proxy/Config.java | 111 .../apache/dubbo/proxy/DubboProxyApplication.java | 15 ++ .../apache/dubbo/proxy/dao/ServiceDefinition.java | 51 .../org/apache/dubbo/proxy/dao/ServiceMapping.java | 18 ++ .../dubbo/proxy/metadata/MetadataCollector.java| 16 ++ .../metadata/impl/ZookeeperMetadataCollector.java | 74 ++ .../dubbo/proxy/server/HttpProcessHandler.java | 88 +++ .../org/apache/dubbo/proxy/server/NettyServer.java | 128 + .../apache/dubbo/proxy/service/GenericInvoke.java | 102 .../org/apache/dubbo/proxy/utils/Constants.java| 8 + .../apache/dubbo/proxy/utils/InetAddressUtil.java | 74 ++ .../dubbo/proxy/utils/NamingThreadFactory.java | 34 +++ .../org/apache/dubbo/proxy/utils/ResultCode.java | 25 ++ .../java/org/apache/dubbo/proxy/utils/Tool.java| 43 .../apache/dubbo/proxy/worker/RequestWorker.java | 132 ++ ...g.apache.dubbo.proxy.metadata.MetadataCollector | 1 + src/main/resources/application.yml | 15 ++ .../dubbo/proxy/DubboProxyApplicationTests.java| 16 ++ 24 files changed, 1628 insertions(+) diff --git a/.gitignore b/.gitignore new file mode 100644 index 000..4977b0d --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# maven ignore +target/ +*.jar +!.mvn/wrapper/* +*.war +*.zip +*.tar +*.tar.gz + +# eclipse ignore +.settings/ +.project +.classpath + +# idea ignore +.idea/ +*.ipr +*.iml +*.iws + +# temp ignore +*.log* +*.cache +*.diff +*.patch +*.tmp + +# system ignore +.DS_Store +Thumbs.db diff --git a/README.md b/README.md new file mode 100644 index 000..b89eeae --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +## Dubbo Proxy +[中文版本](README_zh.md) +Dubbo Proxy, a gateway of Dubbo, switch from HTTP request to Dubbo protocol,then invoke Dubbo service and return to the result. Later Dubbo Proxy would combine several features, including circuit breaker, current-limiting, api management. + + +### instructions + +HTTP request format: + +``` +{application Name}/{Interface name}?version={version}={group} +``` +Group and version is the mapping data in Dubbo service. + +http POST body: + +```json +{ +"methodName" : "sayHello", +"paramTypes" : ["org.apache.dubbo.demo.model.User"], +"paramValues": [ +{ +"id": 23, +"username": "fwjoifjwie" +} +] +} +``` + +* In the Dubbo 2.7 version and later updates versions, paramTypes is optional data, if not filled in, Dubbo Proxy would get related mapping data from metadata center. +* You can set registry address and metadata center address in `application.yml` +``` +proxy.registry.address: zookeeper://127.0.0.1:2181 #registry center address, same as Dubbo service's +proxy.metadata-report.address: zookeeper://127.0.0.1:2181 #metadata center address, used by paramType search, support for dubbo 2.7 or later +``` diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 000..18bbaf7 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,32 @@ +### Dubbo Proxy +[English Version](README.md) +Dubbo Proxy是一个Dubbo网关,可以将Http请求转换成Dubbo的协议,调用Dubbo服务并且返回结果,后续还会集成熔断,限流,api管理等功能。 + +### 用法 +http请求格式如下: +``` +POST {application Name}/{Interface name}?version={version}={group} +``` +其中group和version是Dubbo服务对应的group和version,为可选参数 + +http POST body如下: + +```json +{ +"methodName" : "sayHello", +"paramTypes" : ["org.apache.dubbo.demo.model.User"], +"paramValues": [ +{ +"id": 23, +"username": "fwjoifjwie" +} +] +} +``` + +* 在Dubbo 2.7及后续版本中,paramTypes为可选,如果不填写,Dubbo Proxy会在元数据中心获取对应的参数类型。 +* 可以在`application.yml`中指定注册中心和元数据中心的地址 +``` +proxy.registry.address: zookeeper://127.0.0.1:2181 #注册中心地址,和Dubbo服务的注册中心相同 +proxy.metadata-report.address: zookeeper://127.0.0.1:2181 #元数据中心的地址,未指定paramTypes时查找使用,支持Dubbo 2.7及以后版本 +``` diff --git a/mvnw b/mvnw new file mode 100755 index 000..8b9da3b --- /dev/null +++ b/mvnw @@ -0,0 +1,286 @@ +#!/bin/sh +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +#
[dubbo-proxy] 12/15: Merge pull request #12 from qixiaobo/refactor-code-style
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 6130e36a7c8b5ad4a7a6100d55c73055728ab8e3 Merge: fb6af3c 67d9b4f Author: min AuthorDate: Thu Aug 1 14:45:01 2019 +0800 Merge pull request #12 from qixiaobo/refactor-code-style code-style-refactor .../org/apache/dubbo/proxy/service/GenericInvoke.java | 19 +-- 1 file changed, 9 insertions(+), 10 deletions(-)
[dubbo-proxy] 06/15: Merge remote-tracking branch 'upstream/master' into fix-group-for-register
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 44f25ca6c780123c8d86f07c70506b04dc3b5936 Merge: ba91721 6072531 Author: qixiaobo AuthorDate: Thu Jul 25 14:03:55 2019 +0800 Merge remote-tracking branch 'upstream/master' into fix-group-for-register pom.xml | 2 +- src/main/java/org/apache/dubbo/proxy/Config.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[dubbo-proxy] 03/15: dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit ba917215220a5c53cc2931d062afbc4d0bb08697 Author: qixiaobo AuthorDate: Wed Jul 24 19:02:30 2019 +0800 dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5 --- src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 0bb4668..f620855 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -27,6 +27,7 @@ public class GenericInvoke { public static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); + registryConfig.setGroup(registry.getUrl().getRawParameter(org.apache.dubbo.common.Constants.GROUP_KEY)); applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-proxy"); applicationConfig.setRegistry(registryConfig);
[dubbo-proxy] 04/15: update dubbo version
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 31cbc85c41ba123b091fc7ad77e1ab4dc73c1428 Author: qixiaobo AuthorDate: Wed Jul 24 19:27:17 2019 +0800 update dubbo version --- pom.xml | 2 +- src/main/java/org/apache/dubbo/proxy/Config.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7169ce4..e5a9933 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 1.7.26 1.2.17 2.12.0 - 2.7.1 + 2.7.3 diff --git a/src/main/java/org/apache/dubbo/proxy/Config.java b/src/main/java/org/apache/dubbo/proxy/Config.java index b25c949..46bd136 100644 --- a/src/main/java/org/apache/dubbo/proxy/Config.java +++ b/src/main/java/org/apache/dubbo/proxy/Config.java @@ -50,7 +50,7 @@ public class Config { Registry getRegistry() { URL url = URL.valueOf(registryAddress); if (StringUtils.isNotEmpty(group)) { -url = url.addParameter(org.apache.dubbo.common.Constants.GROUP_KEY, group); +url = url.addParameter(org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY, group); } RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension(); Registry registry = registryFactory.getRegistry(url);
[dubbo-proxy] branch master updated (11dc687 -> 9faa6a1)
This is an automated email from the ASF dual-hosted git repository. min pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git. from 11dc687 Merge pull request #14 from qixiaobo/fix-no-args-method new ba91721 dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5 new 44f25ca Merge remote-tracking branch 'upstream/master' into fix-group-for-register new c483485 dubbo group not set for reference https://github.com/apache/dubbo-proxy/issues/5 new ddc6c5e change getRawParameter to getParameter because group never appears in special meta information new 9faa6a1 Merge pull request #6 from qixiaobo/fix-group-for-register The 15 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java | 1 + 1 file changed, 1 insertion(+)
[dubbo-proxy] 02/15: readme update
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 13478a8e153ee0bac434e3e849b4b1197de711e0 Author: nzomkxia AuthorDate: Mon Jun 3 16:55:59 2019 +0800 readme update --- README.md| 4 ++-- README_zh.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b89eeae..98bb293 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ +[中文版本](README_zh.md) ## Dubbo Proxy -[中文版本](README_zh.md) Dubbo Proxy, a gateway of Dubbo, switch from HTTP request to Dubbo protocol,then invoke Dubbo service and return to the result. Later Dubbo Proxy would combine several features, including circuit breaker, current-limiting, api management. @@ -21,7 +21,7 @@ http POST body: "paramValues": [ { "id": 23, -"username": "fwjoifjwie" +"username": "testUser" } ] } diff --git a/README_zh.md b/README_zh.md index 18bbaf7..803060f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,5 +1,5 @@ +[English Version](README.md) ### Dubbo Proxy -[English Version](README.md) Dubbo Proxy是一个Dubbo网关,可以将Http请求转换成Dubbo的协议,调用Dubbo服务并且返回结果,后续还会集成熔断,限流,api管理等功能。 ### 用法 @@ -18,7 +18,7 @@ http POST body如下: "paramValues": [ { "id": 23, -"username": "fwjoifjwie" +"username": "testUser" } ] }
[dubbo-proxy] 05/15: Merge pull request #8 from qixiaobo/update-dubbo-version
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git commit 60725312f22fcb6e8b84f0eb8b3941ab418dfd17 Merge: 13478a8 31cbc85 Author: Xin Wang AuthorDate: Wed Jul 24 23:01:58 2019 +0800 Merge pull request #8 from qixiaobo/update-dubbo-version update dubbo version pom.xml | 2 +- src/main/java/org/apache/dubbo/proxy/Config.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[dubbo] branch master updated (65a0140 -> 5b38331)
This is an automated email from the ASF dual-hosted git repository. iluo pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/dubbo.git. from 65a0140 try to shorten maven output to make travis build pass (#4710) add 5b38331 use CountDownLatch to check zk registry if establish connection (#4589) No new revisions were added by this update. Summary of changes: .../java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java | 2 -- .../org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java | 3 ++- .../dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java | 5 + 3 files changed, 7 insertions(+), 3 deletions(-)
[dubbo-proxy] branch master updated: maybe we hava a method without args so it make a npe like below ``` Exception in thread "Dubbo-proxy-request-worker-pool-thread-3" java.lang.NullPointerException a
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git The following commit(s) were added to refs/heads/master by this push: new 660a69b maybe we hava a method without args so it make a npe like below ``` Exception in thread "Dubbo-proxy-request-worker-pool-thread-3" java.lang.NullPointerException at org.apache.dubbo.proxy.worker.RequestWorker.run(RequestWorker.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) ``` new 11dc687 Merge pull request #14 from qixiaobo/fix-no-args-method 660a69b is described below commit 660a69b607e3f424c45d2fe7c18962c5617a2702 Author: qixiaobo AuthorDate: Fri Jul 26 19:58:24 2019 +0800 maybe we hava a method without args so it make a npe like below ``` Exception in thread "Dubbo-proxy-request-worker-pool-thread-3" java.lang.NullPointerException at org.apache.dubbo.proxy.worker.RequestWorker.run(RequestWorker.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) ``` --- src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java b/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java index 60262a7..cc89b83 100644 --- a/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java +++ b/src/main/java/org/apache/dubbo/proxy/worker/RequestWorker.java @@ -1,6 +1,7 @@ package org.apache.dubbo.proxy.worker; import com.alibaba.fastjson.JSON; + import org.apache.dubbo.proxy.dao.ServiceDefinition; import org.apache.dubbo.proxy.dao.ServiceMapping; import org.apache.dubbo.proxy.metadata.MetadataCollector; @@ -33,7 +34,7 @@ import static io.netty.handler.codec.http.HttpResponseStatus.OK; import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; -public class RequestWorker implements Runnable{ +public class RequestWorker implements Runnable { private ServiceDefinition serviceDefinition; private ChannelHandlerContext ctx; @@ -60,7 +61,7 @@ public class RequestWorker implements Runnable{ String interfaze = Tool.getInterface(serviceID); String group = Tool.getGroup(serviceID); String version = Tool.getVersion(serviceID); -if (serviceDefinition.getParamTypes() == null) { +if (serviceDefinition.getParamTypes() == null && serviceDefinition.getParamValues() != null) { String[] types = getTypesFromMetadata(serviceDefinition.getApplication(), interfaze, group, version, serviceDefinition.getMethodName(), serviceDefinition.getParamValues().length); serviceDefinition.setParamTypes(types); @@ -103,7 +104,7 @@ public class RequestWorker implements Runnable{ Set cookies = ServerCookieDecoder.STRICT.decode(cookieString); if (!cookies.isEmpty()) { // Reset the cookies if necessary. -for (Cookie cookie: cookies) { +for (Cookie cookie : cookies) { response.headers().add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.STRICT.encode(cookie)); } } @@ -119,7 +120,7 @@ public class RequestWorker implements Runnable{ MetadataIdentifier identifier = new MetadataIdentifier(interfaze, version, group, Constants.PROVIDER_SIDE, application); String metadata = metadataCollector.getProviderMetaData(identifier); FullServiceDefinition serviceDefinition = JSON.parseObject(metadata, FullServiceDefinition.class); -List methods = serviceDefinition.getMethods(); +List methods = serviceDefinition.getMethods(); if (methods != null) { for (MethodDefinition m : methods) { if (Tool.sameMethod(m, methodName, paramLen)) {
[dubbo-proxy] branch master updated: code-style-refactor
This is an automated email from the ASF dual-hosted git repository. min pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-proxy.git The following commit(s) were added to refs/heads/master by this push: new 67d9b4f code-style-refactor new 6130e36 Merge pull request #12 from qixiaobo/refactor-code-style 67d9b4f is described below commit 67d9b4f18d47e4b321576917b720bd78d8a928fe Author: qixiaobo AuthorDate: Fri Jul 26 15:01:18 2019 +0800 code-style-refactor --- .../org/apache/dubbo/proxy/service/GenericInvoke.java | 19 +-- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java index 415fca4..2783361 100644 --- a/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java +++ b/src/main/java/org/apache/dubbo/proxy/service/GenericInvoke.java @@ -24,7 +24,7 @@ public class GenericInvoke { GenericInvoke.registry = registry; } -public static void init() { +private static void init() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress()); applicationConfig = new ApplicationConfig(); @@ -32,7 +32,7 @@ public class GenericInvoke { applicationConfig.setRegistry(registryConfig); } -private static ConcurrentHashMap cachedConfig = new ConcurrentHashMap<>(); +private static ConcurrentHashMap> cachedConfig = new ConcurrentHashMap<>(); private static Logger logger = LoggerFactory.getLogger(GenericInvoke.class); public static Object genericCall(String interfaceName, String group, @@ -41,7 +41,7 @@ public class GenericInvoke { if (init.compareAndSet(false, true)) { init(); } -ReferenceConfig reference = null; +ReferenceConfig reference; reference = addNewReference(interfaceName, group, version); try { @@ -49,8 +49,7 @@ public class GenericInvoke { logger.info("dubbo generic invoke, service is {}, method is {} , paramTypes is {} , paramObjs is {} , svc" + " is {}.", interfaceName , methodName,paramTypes,paramObjs,svc); -Object result = svc.$invoke(methodName, paramTypes, paramObjs); -return result; +return svc.$invoke(methodName, paramTypes, paramObjs); } catch (Exception e) { logger.error("Generic invoke failed",e); if (e instanceof RpcException) { @@ -72,9 +71,9 @@ public class GenericInvoke { } } -private static ReferenceConfig addNewReference(String interfaceName, - String group, String version) { -ReferenceConfig reference; +private static ReferenceConfig addNewReference(String interfaceName, + String group, String version) { +ReferenceConfig reference; String cachedKey = interfaceName + group + version; reference = cachedConfig.get(cachedKey); if (reference == null) { @@ -90,8 +89,8 @@ public class GenericInvoke { return reference; } -private static ReferenceConfig initReference(String interfaceName, String group, -String version) { +private static ReferenceConfig initReference(String interfaceName, String group, + String version) { ReferenceConfig reference = new ReferenceConfig<>(); reference.setGeneric(true); reference.setApplication(applicationConfig);
[dubbo-erlang] branch master updated (cdfcff9 -> aeac23b)
This is an automated email from the ASF dual-hosted git repository. dlive pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-erlang.git. from cdfcff9 change codecov plugin lazy load add 07e743a mod defined for plugin design add 051bb2a redesign the subscription process add fc0072d redesign the protocol callback add 1f64b4b dev client pool add 216b5a7 dev reference ref process add e0b122b dev reference ref process add a5a0cde redesign: invoker process add 91faffc merge form master add af4b990 feature: support protocol extension add 9d8eac6 define extension fun return value add b3be26f optimize code style add f0bf043 fixed common test error add 7fd1c8b feature: add registry sup add aeac23b format code No new revisions were added by this update. Summary of changes: config_example/sys.config | 6 +- include/{dubboerl.hrl => constrans.hrl}| 8 +- include/dubbo.hrl | 50 - include/dubboerl.hrl | 20 +- rebar.config | 2 - .../apache/dubbo/erlang/sample/service/App.java| 2 +- .../dubbo/erlang/sample/service/AppListMain.java | 5 + .../src/main/resources/applicationConsumer.xml | 28 +++ .../src/main/resources/applicationProvider.xml | 2 +- .../apps/dubboerl_demo/src/api_gateway_handle.erl | 25 ++- src/dubbo_adapter.erl | 2 +- ...o_netty_client.erl => dubbo_client_default.erl} | 121 +++- src/{dubbo_common.erl => dubbo_cluster.erl}| 11 +- src/dubbo_cluster_failfast.erl | 57 ++ src/dubbo_codec.erl| 8 +- src/dubbo_common_fun.erl | 88 - src/dubbo_config_util.erl | 7 +- ...{dubbo_id_generator.erl => dubbo_directory.erl} | 105 ++ test/de_codec_tests.erl => src/dubbo_exchanger.erl | 20 +- src/dubbo_extension.erl| 212 + test/de_codec_tests.erl => src/dubbo_filter.erl| 13 +- src/dubbo_invoker.erl | 32 +++- ...bbo_common.erl => dubbo_loadbalance_random.erl} | 10 +- src/dubbo_node_config_util.erl | 76 +++- test/de_codec_tests.erl => src/dubbo_protocol.erl | 11 +- src/dubbo_protocol_dubbo.erl | 184 ++ src/dubbo_protocol_registry.erl| 111 +++ ...l.erl => dubbo_provider_consumer_reg_table.erl} | 178 +++-- src/dubbo_provider_protocol.erl| 15 +- src/dubbo_reference_config.erl | 101 ++ src/dubbo_registry.erl | 62 ++ ...onsumer_pool_sup.erl => dubbo_registry_sup.erl} | 18 +- ..._zookeeper.erl => dubbo_registry_zookeeper.erl} | 205 +--- src/dubbo_service_config.erl | 99 ++ src/{dubbo_id_generator.erl => dubbo_shutdown.erl} | 41 +--- src/dubbo_time_util.erl| 2 +- src/dubbo_traffic_control.erl | 25 ++- ...r_pool_sup.erl => dubbo_transport_pool_sup.erl} | 13 +- src/dubbo_type_decoding.erl| 2 - src/dubbo_type_register.erl| 1 - src/dubbo_type_transfer.erl| 25 ++- src/dubboerl.erl | 24 +-- src/dubboerl_app.erl | 30 ++- src/dubboerl_sup.erl | 22 +-- test/consumer_SUITE.erl| 5 +- test/dubbo_common_fun_tests.erl| 7 +- test/dubbo_config_parser_tests.erl | 9 +- test/dubbo_consumer_pool_tests.erl | 11 +- ...e_codec_tests.erl => dubbo_extension_tests.erl} | 19 +- ..._zookeeper_tests.erl => dubbo_filter_test1.erl} | 22 ++- ...er_SUITE.erl => dubbo_service_config_SUITE.erl} | 71 ++- ...nsumer_SUITE.erl => reference_config_SUITE.erl} | 51 + 52 files changed, 1674 insertions(+), 600 deletions(-) copy include/{dubboerl.hrl => constrans.hrl} (87%) create mode 100644 samples/dubbo-sample-service/src/main/resources/applicationConsumer.xml rename src/{dubbo_netty_client.erl => dubbo_client_default.erl} (73%) copy src/{dubbo_common.erl => dubbo_cluster.erl} (91%) create mode 100644 src/dubbo_cluster_failfast.erl copy src/{dubbo_id_generator.erl => dubbo_directory.erl} (64%) copy test/de_codec_tests.erl => src/dubbo_exchanger.erl (66%) create mode 100644 src/dubbo_extension.erl copy test/de_codec_tests.erl => src/dubbo_filter.erl (75%) rename src/{dubbo_common.erl => dubbo_loadbalance_random.erl} (83%) copy test/de_codec_tests.erl => src/dubbo_protocol.erl (84%) create mode 100644