Merge pull request #8346 from volodymyr-babak/keep-alive-updates
Improved Keep Alive Functionality between Edge and Cloud to Prevent Data Loss
This commit is contained in:
commit
d7fc1ff83e
@ -98,11 +98,14 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
private String privateKeyResource;
|
private String privateKeyResource;
|
||||||
@Value("${edges.state.persistToTelemetry:false}")
|
@Value("${edges.state.persistToTelemetry:false}")
|
||||||
private boolean persistToTelemetry;
|
private boolean persistToTelemetry;
|
||||||
@Value("${edges.rpc.client_max_keep_alive_time_sec}")
|
@Value("${edges.rpc.client_max_keep_alive_time_sec:1}")
|
||||||
private int clientMaxKeepAliveTimeSec;
|
private int clientMaxKeepAliveTimeSec;
|
||||||
@Value("${edges.rpc.max_inbound_message_size:4194304}")
|
@Value("${edges.rpc.max_inbound_message_size:4194304}")
|
||||||
private int maxInboundMessageSize;
|
private int maxInboundMessageSize;
|
||||||
|
@Value("${edges.rpc.keep_alive_time_sec:10}")
|
||||||
|
private int keepAliveTimeSec;
|
||||||
|
@Value("${edges.rpc.keep_alive_timeout_sec:5}")
|
||||||
|
private int keepAliveTimeoutSec;
|
||||||
@Value("${edges.scheduler_pool_size}")
|
@Value("${edges.scheduler_pool_size}")
|
||||||
private int schedulerPoolSize;
|
private int schedulerPoolSize;
|
||||||
|
|
||||||
@ -131,6 +134,9 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
|
|||||||
log.info("Initializing Edge RPC service!");
|
log.info("Initializing Edge RPC service!");
|
||||||
NettyServerBuilder builder = NettyServerBuilder.forPort(rpcPort)
|
NettyServerBuilder builder = NettyServerBuilder.forPort(rpcPort)
|
||||||
.permitKeepAliveTime(clientMaxKeepAliveTimeSec, TimeUnit.SECONDS)
|
.permitKeepAliveTime(clientMaxKeepAliveTimeSec, TimeUnit.SECONDS)
|
||||||
|
.keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS)
|
||||||
|
.keepAliveTimeout(keepAliveTimeoutSec, TimeUnit.SECONDS)
|
||||||
|
.permitKeepAliveWithoutCalls(true)
|
||||||
.maxInboundMessageSize(maxInboundMessageSize)
|
.maxInboundMessageSize(maxInboundMessageSize)
|
||||||
.addService(this);
|
.addService(this);
|
||||||
if (sslEnabled) {
|
if (sslEnabled) {
|
||||||
|
|||||||
@ -949,7 +949,9 @@ edges:
|
|||||||
enabled: "${EDGES_ENABLED:true}"
|
enabled: "${EDGES_ENABLED:true}"
|
||||||
rpc:
|
rpc:
|
||||||
port: "${EDGES_RPC_PORT:7070}"
|
port: "${EDGES_RPC_PORT:7070}"
|
||||||
client_max_keep_alive_time_sec: "${EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC:300}"
|
client_max_keep_alive_time_sec: "${EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC:1}"
|
||||||
|
keep_alive_time_sec: "${EDGES_RPC_KEEP_ALIVE_TIME_SEC:10}"
|
||||||
|
keep_alive_timeout_sec: "${EDGES_RPC_KEEP_ALIVE_TIMEOUT_SEC:5}"
|
||||||
ssl:
|
ssl:
|
||||||
# Enable/disable SSL support
|
# Enable/disable SSL support
|
||||||
enabled: "${EDGES_RPC_SSL_ENABLED:false}"
|
enabled: "${EDGES_RPC_SSL_ENABLED:false}"
|
||||||
|
|||||||
@ -108,6 +108,7 @@ public class EdgeImitator {
|
|||||||
updateEdgeClientFields("rpcPort", port);
|
updateEdgeClientFields("rpcPort", port);
|
||||||
updateEdgeClientFields("timeoutSecs", 3);
|
updateEdgeClientFields("timeoutSecs", 3);
|
||||||
updateEdgeClientFields("keepAliveTimeSec", 300);
|
updateEdgeClientFields("keepAliveTimeSec", 300);
|
||||||
|
updateEdgeClientFields("keepAliveTimeoutSec", 5);
|
||||||
updateEdgeClientFields("maxInboundMessageSize", 4194304);
|
updateEdgeClientFields("maxInboundMessageSize", 4194304);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,8 +57,10 @@ public class EdgeGrpcClient implements EdgeRpcClient {
|
|||||||
private int rpcPort;
|
private int rpcPort;
|
||||||
@Value("${cloud.rpc.timeout}")
|
@Value("${cloud.rpc.timeout}")
|
||||||
private int timeoutSecs;
|
private int timeoutSecs;
|
||||||
@Value("${cloud.rpc.keep_alive_time_sec}")
|
@Value("${cloud.rpc.keep_alive_time_sec:10}")
|
||||||
private int keepAliveTimeSec;
|
private int keepAliveTimeSec;
|
||||||
|
@Value("${cloud.rpc.keep_alive_timeout_sec:5}")
|
||||||
|
private int keepAliveTimeoutSec;
|
||||||
@Value("${cloud.rpc.ssl.enabled}")
|
@Value("${cloud.rpc.ssl.enabled}")
|
||||||
private boolean sslEnabled;
|
private boolean sslEnabled;
|
||||||
@Value("${cloud.rpc.ssl.cert:}")
|
@Value("${cloud.rpc.ssl.cert:}")
|
||||||
@ -83,7 +85,9 @@ public class EdgeGrpcClient implements EdgeRpcClient {
|
|||||||
Consumer<Exception> onError) {
|
Consumer<Exception> onError) {
|
||||||
NettyChannelBuilder builder = NettyChannelBuilder.forAddress(rpcHost, rpcPort)
|
NettyChannelBuilder builder = NettyChannelBuilder.forAddress(rpcHost, rpcPort)
|
||||||
.maxInboundMessageSize(maxInboundMessageSize)
|
.maxInboundMessageSize(maxInboundMessageSize)
|
||||||
.keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS);
|
.keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS)
|
||||||
|
.keepAliveTimeout(keepAliveTimeoutSec, TimeUnit.SECONDS)
|
||||||
|
.keepAliveWithoutCalls(true);
|
||||||
if (sslEnabled) {
|
if (sslEnabled) {
|
||||||
try {
|
try {
|
||||||
SslContextBuilder sslContextBuilder = GrpcSslContexts.forClient();
|
SslContextBuilder sslContextBuilder = GrpcSslContexts.forClient();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user