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;
 | 
			
		||||
    @Value("${edges.state.persistToTelemetry:false}")
 | 
			
		||||
    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;
 | 
			
		||||
    @Value("${edges.rpc.max_inbound_message_size:4194304}")
 | 
			
		||||
    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}")
 | 
			
		||||
    private int schedulerPoolSize;
 | 
			
		||||
 | 
			
		||||
@ -131,6 +134,9 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i
 | 
			
		||||
        log.info("Initializing Edge RPC service!");
 | 
			
		||||
        NettyServerBuilder builder = NettyServerBuilder.forPort(rpcPort)
 | 
			
		||||
                .permitKeepAliveTime(clientMaxKeepAliveTimeSec, TimeUnit.SECONDS)
 | 
			
		||||
                .keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS)
 | 
			
		||||
                .keepAliveTimeout(keepAliveTimeoutSec, TimeUnit.SECONDS)
 | 
			
		||||
                .permitKeepAliveWithoutCalls(true)
 | 
			
		||||
                .maxInboundMessageSize(maxInboundMessageSize)
 | 
			
		||||
                .addService(this);
 | 
			
		||||
        if (sslEnabled) {
 | 
			
		||||
 | 
			
		||||
@ -949,7 +949,9 @@ edges:
 | 
			
		||||
  enabled: "${EDGES_ENABLED:true}"
 | 
			
		||||
  rpc:
 | 
			
		||||
    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:
 | 
			
		||||
      # Enable/disable SSL support
 | 
			
		||||
      enabled: "${EDGES_RPC_SSL_ENABLED:false}"
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@ public class EdgeImitator {
 | 
			
		||||
        updateEdgeClientFields("rpcPort", port);
 | 
			
		||||
        updateEdgeClientFields("timeoutSecs", 3);
 | 
			
		||||
        updateEdgeClientFields("keepAliveTimeSec", 300);
 | 
			
		||||
        updateEdgeClientFields("keepAliveTimeoutSec", 5);
 | 
			
		||||
        updateEdgeClientFields("maxInboundMessageSize", 4194304);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -57,8 +57,10 @@ public class EdgeGrpcClient implements EdgeRpcClient {
 | 
			
		||||
    private int rpcPort;
 | 
			
		||||
    @Value("${cloud.rpc.timeout}")
 | 
			
		||||
    private int timeoutSecs;
 | 
			
		||||
    @Value("${cloud.rpc.keep_alive_time_sec}")
 | 
			
		||||
    @Value("${cloud.rpc.keep_alive_time_sec:10}")
 | 
			
		||||
    private int keepAliveTimeSec;
 | 
			
		||||
    @Value("${cloud.rpc.keep_alive_timeout_sec:5}")
 | 
			
		||||
    private int keepAliveTimeoutSec;
 | 
			
		||||
    @Value("${cloud.rpc.ssl.enabled}")
 | 
			
		||||
    private boolean sslEnabled;
 | 
			
		||||
    @Value("${cloud.rpc.ssl.cert:}")
 | 
			
		||||
@ -83,7 +85,9 @@ public class EdgeGrpcClient implements EdgeRpcClient {
 | 
			
		||||
                        Consumer<Exception> onError) {
 | 
			
		||||
        NettyChannelBuilder builder = NettyChannelBuilder.forAddress(rpcHost, rpcPort)
 | 
			
		||||
                .maxInboundMessageSize(maxInboundMessageSize)
 | 
			
		||||
                .keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS);
 | 
			
		||||
                .keepAliveTime(keepAliveTimeSec, TimeUnit.SECONDS)
 | 
			
		||||
                .keepAliveTimeout(keepAliveTimeoutSec, TimeUnit.SECONDS)
 | 
			
		||||
                .keepAliveWithoutCalls(true);
 | 
			
		||||
        if (sslEnabled) {
 | 
			
		||||
            try {
 | 
			
		||||
                SslContextBuilder sslContextBuilder = GrpcSslContexts.forClient();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user