aboutsummaryrefslogtreecommitdiff
path: root/weed/util
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2018-07-03 19:07:55 -0700
committerChris Lu <chris.lu@gmail.com>2018-07-03 19:07:55 -0700
commit77fc8c59140537bb693ccf44c63e68626322b70e (patch)
treefe68e68eeb061da8a1172b8c1d6b65fd84a2d734 /weed/util
parent28e5f20c8e8cf7cb84026db43c9f33ff13236b64 (diff)
downloadseaweedfs-77fc8c59140537bb693ccf44c63e68626322b70e.tar.xz
seaweedfs-77fc8c59140537bb693ccf44c63e68626322b70e.zip
keep alive for gRpc calls
Diffstat (limited to 'weed/util')
-rw-r--r--weed/util/grpc_client_server.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/weed/util/grpc_client_server.go b/weed/util/grpc_client_server.go
new file mode 100644
index 000000000..8dbb4c0cd
--- /dev/null
+++ b/weed/util/grpc_client_server.go
@@ -0,0 +1,28 @@
+package util
+
+import (
+ "time"
+
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/keepalive"
+)
+
+func NewGrpcServer() *grpc.Server {
+ return grpc.NewServer(grpc.KeepaliveParams(keepalive.ServerParameters{
+ Time: 10 * time.Second, // wait time before ping if no activity
+ Timeout: 20 * time.Second, // ping timeout
+ }), grpc.KeepaliveEnforcementPolicy(keepalive.EnforcementPolicy{
+ MinTime: 60 * time.Second, // min time a client should wait before sending a ping
+ }))
+}
+
+func GrpcDial(address string, opts ...grpc.DialOption) (*grpc.ClientConn, error) {
+
+ opts = append(opts, grpc.WithInsecure())
+ opts = append(opts, grpc.WithKeepaliveParams(keepalive.ClientParameters{
+ Time: 30 * time.Second, // client ping server if no activity for this long
+ Timeout: 20 * time.Second,
+ }))
+
+ return grpc.Dial(address, opts...)
+}