You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/06/03 05:01:13 UTC
[dubbo] branch performance-tuning-2.7.x updated: performance
tuning: avoid address resolve (#4220)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch performance-tuning-2.7.x
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/performance-tuning-2.7.x by this push:
new d767488 performance tuning: avoid address resolve (#4220)
d767488 is described below
commit d76748880003613ad8f1c7705c1eab8ef8ac2f1b
Author: ken.lj <ke...@gmail.com>
AuthorDate: Mon Jun 3 13:01:07 2019 +0800
performance tuning: avoid address resolve (#4220)
---
.../main/java/org/apache/dubbo/common/utils/NetUtils.java | 13 ++++++++++++-
.../org/apache/dubbo/rpc/filter/ConsumerContextFilter.java | 2 +-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java
index 6fd1a4e..6700241 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/NetUtils.java
@@ -37,9 +37,9 @@ import java.util.concurrent.ThreadLocalRandom;
import java.util.regex.Pattern;
import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;
+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_IP_TO_BIND;
import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;
-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_IP_TO_BIND;
/**
* IP and Port Helper for RPC
@@ -180,6 +180,17 @@ public class NetUtils {
return address;
}
+ private static volatile String HOST_ADDRESS;
+
+ public static String getHostAddress () {
+ if (HOST_ADDRESS != null) {
+ return HOST_ADDRESS;
+ }
+
+ HOST_ADDRESS = getLocalHost();
+ return HOST_ADDRESS;
+ }
+
public static String getLocalHost() {
InetAddress address = getLocalAddress();
return address == null ? LOCALHOST_VALUE : address.getHostAddress();
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerContextFilter.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerContextFilter.java
index 43353f7..b9b3691 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerContextFilter.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerContextFilter.java
@@ -47,7 +47,7 @@ public class ConsumerContextFilter extends ListenableFilter {
RpcContext.getContext()
.setInvoker(invoker)
.setInvocation(invocation)
- .setLocalAddress(NetUtils.getLocalHost(), 0)
+ .setLocalAddress(NetUtils.getHostAddress(), 0)
.setRemoteAddress(invoker.getUrl().getHost(),
invoker.getUrl().getPort());
if (invocation instanceof RpcInvocation) {