package server import ( "context" "github.com/go-kratos/kratos/v2/log" "github.com/tx7do/kratos-transport/transport/kafka" "sandc/app/eonline/internal/biz" "sandc/app/eonline/internal/conf" ) // NewKafkaServer new a kafka server. func NewKafkaServer(c *conf.Queue, uc *biz.EonlineUsecase, logger log.Logger) *kafka.Server { opts := []kafka.ServerOption{ kafka.WithAddress(c.Kafka.Addrs), kafka.WithCodec("json"), kafka.WithGlobalTracerProvider(), } if c.Kafka.Username != "" && c.Kafka.Password != "" { opts = append(opts, kafka.WithPlainMechanism(c.Kafka.Username, c.Kafka.Password)) } kafkaSrv := kafka.NewServer(opts...) err := kafkaSrv.RegisterSubscriber( context.Background(), c.Kafka.Topic, c.Kafka.Group, false, biz.RegisterExampleHandler(uc.KakfaExampleConsumer), biz.ExampleCreator, ) if err != nil { log.Fatal(err) } return kafkaSrv }