package service import ( "github.com/milvus-io/milvus/internal/proto/streamingpb" "github.com/milvus-io/milvus/internal/streamingcoord/server/balancer" "github.com/milvus-io/milvus/internal/streamingcoord/server/service/discover" "github.com/milvus-io/milvus/pkg/metrics" "github.com/milvus-io/milvus/pkg/util/paramtable" ) var _ streamingpb.StreamingCoordAssignmentServiceServer = (*assignmentServiceImpl)(nil) // NewAssignmentService returns a new assignment service. func NewAssignmentService( balancer balancer.Balancer, ) streamingpb.StreamingCoordAssignmentServiceServer { return &assignmentServiceImpl{ balancer: balancer, } } type AssignmentService interface { streamingpb.StreamingCoordAssignmentServiceServer } // assignmentServiceImpl is the implementation of the assignment service. type assignmentServiceImpl struct { balancer balancer.Balancer } // AssignmentDiscover watches the state of all log nodes. func (s *assignmentServiceImpl) AssignmentDiscover(server streamingpb.StreamingCoordAssignmentService_AssignmentDiscoverServer) error { metrics.StreamingCoordAssignmentListenerTotal.WithLabelValues(paramtable.GetStringNodeID()).Inc() defer metrics.StreamingCoordAssignmentListenerTotal.WithLabelValues(paramtable.GetStringNodeID()).Dec() return discover.NewAssignmentDiscoverServer(s.balancer, server).Execute() }