2020-10-15 13:31:50 +00:00
|
|
|
package master
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"strconv"
|
|
|
|
"time"
|
|
|
|
|
2020-10-19 09:45:56 +00:00
|
|
|
"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"
|
2020-10-15 13:31:50 +00:00
|
|
|
|
|
|
|
"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
|
|
|
|
}
|