Skip to content

Commit ce10b32

Browse files
fix:fix tsf consul event not working bug. (#603)
1 parent e1c9e28 commit ce10b32

File tree

3 files changed

+56
-20
lines changed
  • polaris-discovery/polaris-discovery-client/src
  • polaris-plugins/polaris-plugins-observability/event-tsf/src/main/java/com/tencent/polaris/plugins/event/tsf

3 files changed

+56
-20
lines changed

polaris-discovery/polaris-discovery-client/src/main/java/com/tencent/polaris/discovery/client/util/Validator.java

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,13 @@
2424
import com.tencent.polaris.api.pojo.RetStatus;
2525
import com.tencent.polaris.api.pojo.ServiceEventKey;
2626
import com.tencent.polaris.api.pojo.ServiceKey;
27-
import com.tencent.polaris.api.rpc.BaseEntity;
28-
import com.tencent.polaris.api.rpc.GetAllInstancesRequest;
29-
import com.tencent.polaris.api.rpc.GetHealthyInstancesRequest;
30-
import com.tencent.polaris.api.rpc.GetInstancesRequest;
31-
import com.tencent.polaris.api.rpc.GetOneInstanceRequest;
32-
import com.tencent.polaris.api.rpc.GetResourcesRequest;
33-
import com.tencent.polaris.api.rpc.GetServiceContractRequest;
34-
import com.tencent.polaris.api.rpc.GetServiceRuleRequest;
35-
import com.tencent.polaris.api.rpc.InstanceDeregisterRequest;
36-
import com.tencent.polaris.api.rpc.InstanceHeartbeatRequest;
37-
import com.tencent.polaris.api.rpc.InstanceRegisterRequest;
38-
import com.tencent.polaris.api.rpc.ServiceCallResult;
39-
import com.tencent.polaris.api.rpc.UnWatchServiceRequest;
40-
import com.tencent.polaris.api.rpc.WatchServiceRequest;
27+
import com.tencent.polaris.api.rpc.*;
4128
import com.tencent.polaris.api.utils.CollectionUtils;
4229
import com.tencent.polaris.api.utils.StringUtils;
4330
import com.tencent.polaris.client.util.CommonValidator;
31+
import com.tencent.polaris.logging.LoggerFactory;
32+
import org.slf4j.Logger;
4433

45-
import java.util.Objects;
4634
import java.util.Set;
4735

4836
/**
@@ -53,6 +41,8 @@
5341
*/
5442
public class Validator {
5543

44+
private static final Logger LOG = LoggerFactory.getLogger(Validator.class);
45+
5646
private static final int MAX_PORT = 65536;
5747

5848
/**
@@ -164,7 +154,7 @@ public static void validateServiceCallResult(ServiceCallResult serviceCallResult
164154
throw new PolarisException(ErrorCode.API_INVALID_ARGUMENT, "delay can not be less than 0");
165155
}
166156
if (!RetStatus.RetReject.equals(serviceCallResult.getRetStatus())) {
167-
validateHostPort(serviceCallResult.getHost(), serviceCallResult.getPort());
157+
validateServiceCallResultHostPort(serviceCallResult.getHost(), serviceCallResult.getPort());
168158
}
169159
}
170160

@@ -187,6 +177,29 @@ private static void validateHostPort(String host, Integer port) throws PolarisEx
187177
}
188178
}
189179

180+
/**
181+
* 校验服务请求端口信息。某些场景下端口号为0,例如Dubbo的本地调用。
182+
*
183+
* @param host
184+
* @param port
185+
* @throws PolarisException
186+
*/
187+
private static void validateServiceCallResultHostPort(String host, Integer port) throws PolarisException {
188+
if (StringUtils.isBlank(host)) {
189+
throw new PolarisException(ErrorCode.API_INVALID_ARGUMENT, "host can not be blank");
190+
}
191+
if (port == null) {
192+
throw new PolarisException(ErrorCode.API_INVALID_ARGUMENT, "port can not be null");
193+
}
194+
if (port == 0) {
195+
LOG.warn("port is 0 with host {}. Please check if it meets expectations.", host);
196+
}
197+
if (port < 0 || port >= MAX_PORT) {
198+
throw new PolarisException(
199+
ErrorCode.API_INVALID_ARGUMENT, "port value should be in range [0, 65536).");
200+
}
201+
}
202+
190203
/**
191204
* 校验实例注册请求
192205
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Tencent is pleased to support the open source community by making polaris-java available.
3+
*
4+
* Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
5+
*
6+
* Licensed under the BSD 3-Clause License (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* https://opensource.org/licenses/BSD-3-Clause
11+
*
12+
* Unless required by applicable law or agreed to in writing, software distributed
13+
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
14+
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
15+
* specific language governing permissions and limitations under the License.
16+
*/
17+
18+
package com.tencent.polaris.discovery.client.util;
19+
20+
/**
21+
* @author Haotian Zhang
22+
*/
23+
public class ValidatorTest {
24+
}

polaris-plugins/polaris-plugins-observability/event-tsf/src/main/java/com/tencent/polaris/plugins/event/tsf/TsfEventReporter.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
import com.tencent.polaris.api.plugin.common.PluginTypes;
3030
import com.tencent.polaris.api.plugin.compose.Extensions;
3131
import com.tencent.polaris.api.plugin.event.BaseEvent;
32+
import com.tencent.polaris.api.plugin.event.EventConstants;
3233
import com.tencent.polaris.api.plugin.event.EventReporter;
3334
import com.tencent.polaris.api.plugin.event.FlowEvent;
34-
import com.tencent.polaris.api.pojo.ServiceEventKey;
3535
import com.tencent.polaris.api.utils.CollectionUtils;
3636
import com.tencent.polaris.api.utils.StringUtils;
3737
import com.tencent.polaris.api.utils.ThreadPoolUtils;
@@ -102,10 +102,9 @@ public boolean isEnabled() {
102102
@Override
103103
public boolean reportEvent(BaseEvent baseEvent) {
104104
if (baseEvent instanceof FlowEvent) {
105-
if (baseEvent.getEventType().equals(ServiceEventKey.EventType.CIRCUIT_BREAKING)) {
105+
if (baseEvent.getEventType().equals(EventConstants.EventType.CIRCUIT_BREAKING)) {
106106
return reportV1Event((FlowEvent) baseEvent);
107-
}
108-
else if (baseEvent.getEventType().equals(ServiceEventKey.EventType.RATE_LIMITING)) {
107+
} else if (baseEvent.getEventType().equals(EventConstants.EventType.RATE_LIMITING)) {
109108
return reportReportEvent((FlowEvent) baseEvent);
110109
}
111110
}

0 commit comments

Comments
 (0)