zoukankan      html  css  js  c++  java
  • golang grpc keepalive

    最近遇到 grpc 客户端报错 rpc error: code = Unavailable desc = transport is closing,原因是连接长时间没有使用,被服务端断开,这种情况通过简单粗暴的重试策略可以解决,更加优雅的解决方案是增加保持连接策略

    服务端

    var kaep = keepalive.EnforcementPolicy{
    	MinTime:             5 * time.Second, // If a client pings more than once every 5 seconds, terminate the connection
    	PermitWithoutStream: true,            // Allow pings even when there are no active streams
    }
    
    var kasp = keepalive.ServerParameters{
    	MaxConnectionIdle:     15 * time.Second, // If a client is idle for 15 seconds, send a GOAWAY
    	MaxConnectionAge:      30 * time.Second, // If any connection is alive for more than 30 seconds, send a GOAWAY
    	MaxConnectionAgeGrace: 5 * time.Second,  // Allow 5 seconds for pending RPCs to complete before forcibly closing connections
    	Time:                  5 * time.Second,  // Ping the client if it is idle for 5 seconds to ensure the connection is still active
    	Timeout:               1 * time.Second,  // Wait 1 second for the ping ack before assuming the connection is dead
    }
    
    server := grpc.NewServer(grpc.KeepaliveEnforcementPolicy(kaep), grpc.KeepaliveParams(kasp))
    

    客户端

    var kacp = keepalive.ClientParameters{
    	Time:                10 * time.Second, // send pings every 10 seconds if there is no activity
    	Timeout:             time.Second,      // wait 1 second for ping ack before considering the connection dead
    	PermitWithoutStream: true,             // send pings even without active streams
    }
    
    conn, err := grpc.Dial(*addr, grpc.WithInsecure(), grpc.WithKeepaliveParams(kacp))
    

    链接

    转载请注明出处
    本文链接:https://tech.hatlonely.com/article/52

  • 相关阅读:
    stl(8)常见的算法
    stl(7)几种常见的迭代器
    stl(6)deque容器
    pre_exam_exercise1
    全为1时计算个数,出现0返回0
    COMP9021--7.18
    lecture 5 Basics of Map Algebra
    COMP9021--7.15
    Lecture 4补充
    COMP9021--7.4
  • 原文地址:https://www.cnblogs.com/hatlonely/p/11945203.html
Copyright © 2011-2022 走看看