You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2026/06/15 08:43:56 UTC
(rocketmq) branch develop updated: [ISSUE #10510] Add gRPC server permit keepalive configuration (#10516)
This is an automated email from the ASF dual-hosted git repository.
lizhimins pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 7347c44b06 [ISSUE #10510] Add gRPC server permit keepalive configuration (#10516)
7347c44b06 is described below
commit 7347c44b0609a34affdd1893a3532e79ac33e325
Author: RockteMQ-AI <ap...@alibaba-inc.com>
AuthorDate: Mon Jun 15 16:43:51 2026 +0800
[ISSUE #10510] Add gRPC server permit keepalive configuration (#10516)
---
.../org/apache/rocketmq/proxy/config/ProxyConfig.java | 18 ++++++++++++++++++
.../apache/rocketmq/proxy/grpc/GrpcServerBuilder.java | 4 +++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/config/ProxyConfig.java b/proxy/src/main/java/org/apache/rocketmq/proxy/config/ProxyConfig.java
index 5a1a585930..3068109835 100644
--- a/proxy/src/main/java/org/apache/rocketmq/proxy/config/ProxyConfig.java
+++ b/proxy/src/main/java/org/apache/rocketmq/proxy/config/ProxyConfig.java
@@ -156,6 +156,8 @@ public class ProxyConfig implements ConfigFile {
private long grpcClientConsumerMaxLongPollingTimeoutMillis = Duration.ofSeconds(20).toMillis();
private int grpcClientConsumerLongPollingBatchSize = 32;
private long grpcClientIdleTimeMills = Duration.ofSeconds(120).toMillis();
+ private long grpcServerPermitKeepAliveTimeMillis = 30000;
+ private boolean grpcServerPermitKeepAliveWithoutCalls = true;
private int channelExpiredInSeconds = 60;
private int contextExpiredInSeconds = 30;
@@ -1221,6 +1223,22 @@ public class ProxyConfig implements ConfigFile {
this.grpcClientIdleTimeMills = grpcClientIdleTimeMills;
}
+ public long getGrpcServerPermitKeepAliveTimeMillis() {
+ return grpcServerPermitKeepAliveTimeMillis;
+ }
+
+ public void setGrpcServerPermitKeepAliveTimeMillis(long grpcServerPermitKeepAliveTimeMillis) {
+ this.grpcServerPermitKeepAliveTimeMillis = grpcServerPermitKeepAliveTimeMillis;
+ }
+
+ public boolean isGrpcServerPermitKeepAliveWithoutCalls() {
+ return grpcServerPermitKeepAliveWithoutCalls;
+ }
+
+ public void setGrpcServerPermitKeepAliveWithoutCalls(boolean grpcServerPermitKeepAliveWithoutCalls) {
+ this.grpcServerPermitKeepAliveWithoutCalls = grpcServerPermitKeepAliveWithoutCalls;
+ }
+
public String getRegionId() {
return regionId;
}
diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/GrpcServerBuilder.java b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/GrpcServerBuilder.java
index 1f012e6f40..f59c4982c4 100644
--- a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/GrpcServerBuilder.java
+++ b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/GrpcServerBuilder.java
@@ -78,7 +78,9 @@ public class GrpcServerBuilder {
}
serverBuilder.maxInboundMessageSize(maxInboundMessageSize)
- .maxConnectionIdle(idleTimeMills, TimeUnit.MILLISECONDS);
+ .maxConnectionIdle(idleTimeMills, TimeUnit.MILLISECONDS)
+ .permitKeepAliveTime(config.getGrpcServerPermitKeepAliveTimeMillis(), TimeUnit.MILLISECONDS)
+ .permitKeepAliveWithoutCalls(config.isGrpcServerPermitKeepAliveWithoutCalls());
log.info("grpc server has built. port: {}, bossLoopNum: {}, workerLoopNum: {}, maxInboundMessageSize: {}",
port, bossLoopNum, workerLoopNum, maxInboundMessageSize);