milvus/internal/master/server.go

47 lines
1.1 KiB
Go

package master
import (
"log"
"strconv"
"time"
"github.com/czs007/suvlim/internal/conf"
"github.com/czs007/suvlim/internal/master/controller"
milvusgrpc "github.com/czs007/suvlim/internal/master/grpc"
messagepb "github.com/czs007/suvlim/internal/proto/message"
"github.com/czs007/suvlim/internal/master/kv"
"go.etcd.io/etcd/clientv3"
)
func Run() {
kvbase := newKvBase()
collectionChan := make(chan *messagepb.Mapping)
defer close(collectionChan)
errorch := make(chan error)
defer close(errorch)
go milvusgrpc.Server(collectionChan, errorch, kvbase)
go controller.SegmentStatsController(kvbase, errorch)
go controller.CollectionController(collectionChan, kvbase, errorch)
for {
for v := range errorch {
log.Fatal(v)
}
}
}
func newKvBase() kv.Base {
etcdAddr := conf.Config.Etcd.Address
etcdAddr += ":"
etcdAddr += strconv.FormatInt(int64(conf.Config.Etcd.Port), 10)
cli, _ := clientv3.New(clientv3.Config{
Endpoints: []string{etcdAddr},
DialTimeout: 5 * time.Second,
})
// defer cli.Close()
kvbase := kv.NewEtcdKVBase(cli, conf.Config.Etcd.Rootpath)
return kvbase
}