This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 5804e9b98 [SCB-2686]fix date time from edge not parsed by highway 
problem (#3349)
5804e9b98 is described below

commit 5804e9b98260790deb365b38cc27ea280dfd3ea2
Author: liubao68 <[email protected]>
AuthorDate: Tue Sep 20 14:21:15 2022 +0800

    [SCB-2686]fix date time from edge not parsed by highway problem (#3349)
---
 demo/demo-cse-v2/README.md                         |  6 ++--
 .../gateway/src/main/resources/application.yml     | 12 ++------
 .../test-client/src/main/resources/application.yml |  4 +--
 .../qps/ProviderQpsFlowControlHandler.java         | 11 +++-----
 .../servicecomb/qps/QpsControllerManager.java      | 33 +++++++++-------------
 5 files changed, 25 insertions(+), 41 deletions(-)

diff --git a/demo/demo-cse-v2/README.md b/demo/demo-cse-v2/README.md
index a9936ecc9..7d6b20b47 100644
--- a/demo/demo-cse-v2/README.md
+++ b/demo/demo-cse-v2/README.md
@@ -3,8 +3,8 @@
 * 参考:https://support.huaweicloud.com/devg-cse/cse_devg_0036.html 安装微服务引擎2.0
 
 * 设置环境变量:
-  * CSE_V2_SC: 注册中心的地址
-  * CSE_V2_CC: 配置中心的地址
+  * PAAS_CSE_SC_ENDPOINT: 注册中心的地址
+  * PAAS_CSE_CC_ENDPOINT: 配置中心的地址
 
 * 依次启动 provider、consumer、gateway
 
@@ -147,4 +147,4 @@ cse:
       priority1: v30
 ```
 
-* 执行 tests-client 里面的集成测试用例 (失败)
\ No newline at end of file
+* 执行 tests-client 里面的集成测试用例 (失败)
diff --git a/demo/demo-cse-v2/gateway/src/main/resources/application.yml 
b/demo/demo-cse-v2/gateway/src/main/resources/application.yml
index b7d95e47e..07e25faa4 100644
--- a/demo/demo-cse-v2/gateway/src/main/resources/application.yml
+++ b/demo/demo-cse-v2/gateway/src/main/resources/application.yml
@@ -25,11 +25,11 @@ servicecomb:
     name: gateway
     version: 0.0.1
     registry:
-      address: ${CSE_V2_SC}
+      address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
       instance:
         watch: false
   kie:
-    serverUri: ${CSE_V2_CC}
+    serverUri: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
     customLabel: public
 
   rest:
@@ -49,11 +49,3 @@ servicecomb:
               path: "/.*"
               microserviceName: consumer
               versionRule: 0.0.0+
-
-  # Configure AK/SK credentials if needed. Default not enabled.
-  credentials:
-    akskEnabled: true
-    accessKey: ${CREDENTIALS_AK}
-    secretKey: ${CREDENTIALS_SK}
-    akskCustomCipher: default
-    project: cn-south-1
\ No newline at end of file
diff --git a/demo/demo-cse-v2/test-client/src/main/resources/application.yml 
b/demo/demo-cse-v2/test-client/src/main/resources/application.yml
index b9d888bb3..3ab2fb08b 100644
--- a/demo/demo-cse-v2/test-client/src/main/resources/application.yml
+++ b/demo/demo-cse-v2/test-client/src/main/resources/application.yml
@@ -28,11 +28,11 @@ servicecomb:
     name: test-client
     version: 0.0.1
     registry:
-      address: ${CSE_V2_SC}
+      address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
       instance:
         watch: false
   kie:
-    serverUri: ${CSE_V2_CC}
+    serverUri: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
     customLabel: public
 
   rest:
diff --git 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
index 44dc1b0dd..21016dbb6 100644
--- 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
+++ 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
@@ -17,7 +17,6 @@
 
 package org.apache.servicecomb.qps;
 
-import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Handler;
 import org.apache.servicecomb.core.Invocation;
@@ -25,6 +24,8 @@ import 
org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
+import com.google.common.annotations.VisibleForTesting;
+
 public class ProviderQpsFlowControlHandler implements Handler {
 
   private final QpsControllerManager qpsControllerMgr = new 
QpsControllerManager(true);
@@ -46,17 +47,14 @@ public class ProviderQpsFlowControlHandler implements 
Handler {
 
     String microserviceName = invocation.getContext(Const.SRC_MICROSERVICE);
     QpsStrategy qpsStrategy = qpsControllerMgr.getOrCreate(microserviceName, 
invocation);
-    isLimitNewRequest(qpsStrategy, asyncResp);
+    checkRequestRateLimited(qpsStrategy, asyncResp);
   }
 
-  private boolean isLimitNewRequest(QpsStrategy qpsStrategy, AsyncResponse 
asyncResp) {
+  private void checkRequestRateLimited(QpsStrategy qpsStrategy, AsyncResponse 
asyncResp) {
     if (qpsStrategy.isLimitNewRequest()) {
       CommonExceptionData errorData = new CommonExceptionData(
           "provider request rejected by qps flowcontrol");
       asyncResp.producerFail(new 
InvocationException(QpsConst.TOO_MANY_REQUESTS_STATUS, errorData));
-      return true;
-    } else {
-      return false;
     }
   }
 
@@ -64,5 +62,4 @@ public class ProviderQpsFlowControlHandler implements Handler 
{
   public QpsControllerManager getQpsControllerMgr() {
     return qpsControllerMgr;
   }
-
 }
diff --git 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
index e84cd7000..436d6db13 100644
--- 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
+++ 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import com.google.common.annotations.VisibleForTesting;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
@@ -33,6 +32,7 @@ import org.apache.servicecomb.qps.strategy.IStrategyFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.netflix.config.DynamicProperty;
 
 public class QpsControllerManager {
@@ -162,11 +162,6 @@ public class QpsControllerManager {
     return null;
   }
 
-  private boolean keyMatch(String configKey, Entry<String, 
AbstractQpsStrategy> controllerEntry) {
-    return controllerEntry.getKey().equals(configKey)
-        || controllerEntry.getKey().startsWith(configKey + SEPARATOR);
-  }
-
   private boolean isValidQpsController(AbstractQpsStrategy qpsStrategy) {
     return null != qpsStrategy && null != qpsStrategy.getQpsLimit();
   }
@@ -189,37 +184,37 @@ public class QpsControllerManager {
       configQpsControllerMap.put(configKey, innerQpsStrategy);
       LOGGER.info("Global flow control strategy update, value = [{}]",
           strategyProperty.getString());
-      updateObjMap(configKey);
+      updateObjMap();
     });
     limitProperty.addCallback(() -> {
       qpsStrategy.setQpsLimit(limitProperty.getLong());
       LOGGER.info("Qps limit updated, configKey = [{}], value = [{}]", 
configKey,
           limitProperty.getString());
-      updateObjMap(configKey);
+      updateObjMap();
     });
     bucketProperty.addCallback(() -> {
       qpsStrategy.setBucketLimit(bucketProperty.getLong());
       LOGGER.info("bucket limit updated, configKey = [{}], value = [{}]", 
configKey,
           bucketProperty.getString());
-      updateObjMap(configKey);
+      updateObjMap();
     });
 
     configQpsControllerMap.put(configKey, qpsStrategy);
   }
 
-  protected void updateObjMap(String configKey) {
+  protected void updateObjMap() {
     Iterator<Entry<String, AbstractQpsStrategy>> it = 
qualifiedNameControllerMap.entrySet().iterator();
     while (it.hasNext()) {
       Map.Entry<String, AbstractQpsStrategy> entry = it.next();
-      if (keyMatch(configKey, entry)) {
-        AbstractQpsStrategy qpsStrategy = searchQpsController(entry.getKey());
-        if (qpsStrategy != null) {
-          entry.setValue(qpsStrategy);
-          LOGGER.info("QpsController updated, operationId = [{}], configKey = 
[{}], qpsLimit = [{}]",
-              entry.getKey(), qpsStrategy.getKey(), qpsStrategy.getQpsLimit());
-        } else {
-          it.remove();
-        }
+      AbstractQpsStrategy qpsStrategy = searchQpsController(entry.getKey());
+      if (qpsStrategy == null) {
+        it.remove();
+        continue;
+      }
+      if (qpsStrategy != entry.getValue()) {
+        entry.setValue(qpsStrategy);
+        LOGGER.info("QpsController updated, operationId = [{}], configKey = 
[{}], qpsLimit = [{}]",
+            entry.getKey(), qpsStrategy.getKey(), qpsStrategy.getQpsLimit());
       }
     }
   }

Reply via email to