Skip to content

Commit 5ef3f9d

Browse files
committed
fix:add deadline to heartbeat.
1 parent d4b1143 commit 5ef3f9d

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

polaris-discovery/polaris-discovery-client/src/main/java/com/tencent/polaris/discovery/client/api/DefaultProviderAPI.java

+1
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ public void heartbeat(InstanceHeartbeatRequest req) throws PolarisException {
159159
long start = System.currentTimeMillis();
160160
ServiceCallResult serviceCallResult = new ServiceCallResult();
161161
CommonProviderRequest request = req.getRequest();
162+
request.setTimeoutMs(timeout);
162163
try {
163164
serverConnector.heartbeat(request);
164165
serviceCallResult.setRetStatus(RetStatus.RetSuccess);

polaris-plugins/polaris-plugin-api/src/main/java/com/tencent/polaris/api/plugin/server/CommonProviderRequest.java

+15-4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public class CommonProviderRequest {
5353

5454
private String campus;
5555

56+
private long timeoutMs;
57+
5658
public String getInstanceID() {
5759
return instanceID;
5860
}
@@ -181,6 +183,14 @@ public void setCampus(String campus) {
181183
this.campus = campus;
182184
}
183185

186+
public long getTimeoutMs() {
187+
return timeoutMs;
188+
}
189+
190+
public void setTimeoutMs(long timeoutMs) {
191+
this.timeoutMs = timeoutMs;
192+
}
193+
184194
@Override
185195
public String toString() {
186196
return "CommonProviderRequest{" +
@@ -196,10 +206,11 @@ public String toString() {
196206
", priority=" + priority +
197207
", metadata=" + metadata +
198208
", ttl=" + ttl +
199-
", zone=" + zone +
200-
", region=" + region +
201-
", campus=" + campus +
209+
", targetServer=" + targetServer +
210+
", zone='" + zone + '\'' +
211+
", region='" + region + '\'' +
212+
", campus='" + campus + '\'' +
213+
", timeoutMs=" + timeoutMs +
202214
'}';
203215
}
204-
205216
}

polaris-plugins/polaris-plugins-connector/connector-polaris-grpc/src/main/java/com/tencent/polaris/plugins/connector/grpc/GrpcConnector.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -515,14 +515,17 @@ public void heartbeat(CommonProviderRequest req) throws PolarisException {
515515
checkDestroyed();
516516
Connection connection = null;
517517
ServiceKey serviceKey = new ServiceKey(req.getNamespace(), req.getService());
518+
long startTimestamp = 0L;
518519
try {
519520
waitDiscoverReady();
520521
connection = connectionManager
521522
.getConnection(GrpcUtil.OP_KEY_INSTANCE_HEARTBEAT, ClusterType.HEALTH_CHECK_CLUSTER);
522523
req.setTargetServer(connectionToTargetNode(connection));
523524
PolarisGRPCGrpc.PolarisGRPCBlockingStub stub = PolarisGRPCGrpc.newBlockingStub(connection.getChannel());
524525
GrpcUtil.attachRequestHeader(stub, GrpcUtil.nextHeartbeatReqId());
525-
ResponseProto.Response heartbeatResponse = stub.heartbeat(buildHeartbeatRequest(req));
526+
startTimestamp = System.currentTimeMillis();
527+
LOG.debug("start heartbeat at {} ms", startTimestamp);
528+
ResponseProto.Response heartbeatResponse = stub.withDeadlineAfter(req.getTimeoutMs(), TimeUnit.MILLISECONDS).heartbeat(buildHeartbeatRequest(req));
526529
GrpcUtil.checkResponse(heartbeatResponse);
527530
LOG.debug("received heartbeat response {}", heartbeatResponse);
528531
} catch (Throwable t) {
@@ -537,6 +540,8 @@ public void heartbeat(CommonProviderRequest req) throws PolarisException {
537540
String.format("fail to heartbeat id %s, host %s:%d service %s",
538541
req.getInstanceID(), req.getHost(), req.getPort(), serviceKey), t);
539542
} finally {
543+
long endTimestamp = System.currentTimeMillis();
544+
LOG.debug("end heartbeat at {} ms. Diff {} ms", endTimestamp, endTimestamp - startTimestamp);
540545
if (null != connection) {
541546
connection.release(GrpcUtil.OP_KEY_INSTANCE_HEARTBEAT);
542547
}

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464

6565
<properties>
6666
<!-- Project revision -->
67-
<revision>1.12.2</revision>
67+
<revision>1.12.3</revision>
6868

6969
<timestamp>${maven.build.timestamp}</timestamp>
7070
<skip.maven.deploy>false</skip.maven.deploy>

0 commit comments

Comments
 (0)