diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-03-05 02:29:38 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-03-05 02:29:38 -0800 |
| commit | 400de380f48c44c7700fdf7e8f247bf856662c10 (patch) | |
| tree | 2675abb8d23a4b185b9c6279f66971f5605f1d84 /weed/command/volume.go | |
| parent | 2e89c8c9aee141e0ca471644639c970ebaf1dcaa (diff) | |
| download | seaweedfs-400de380f48c44c7700fdf7e8f247bf856662c10.tar.xz seaweedfs-400de380f48c44c7700fdf7e8f247bf856662c10.zip | |
volume server: support tcp direct put/get/delete
Diffstat (limited to 'weed/command/volume.go')
| -rw-r--r-- | weed/command/volume.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/weed/command/volume.go b/weed/command/volume.go index 659c93d96..cf162a732 100644 --- a/weed/command/volume.go +++ b/weed/command/volume.go @@ -251,6 +251,9 @@ func (v VolumeServerOptions) startVolumeServer(volumeFolders, maxVolumeCounts, v } } + // starting tcp server + go v.startTcpService(volumeServer) + // starting the cluster http server clusterHttpServer := v.startClusterHttpService(volumeMux) @@ -368,3 +371,22 @@ func (v VolumeServerOptions) startClusterHttpService(handler http.Handler) httpd }() return clusterHttpServer } + +func (v VolumeServerOptions) startTcpService(volumeServer *weed_server.VolumeServer) { + listeningAddress := *v.bindIp + ":" + strconv.Itoa(*v.port+20000) + glog.V(0).Infoln("Start Seaweed volume server", util.Version(), "tcp at", listeningAddress) + listener, e := util.NewListener(listeningAddress, 0) + if e != nil { + glog.Fatalf("Volume server listener error on %s:%v", listeningAddress, e) + } + defer listener.Close() + + for { + c, err := listener.Accept() + if err != nil { + fmt.Println(err) + return + } + go volumeServer.HandleTcpConnection(c) + } +} |
