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 <[email protected]>
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);