tkcashgame_v4/app/eonline/internal/server/kafka.go

32 lines
878 B
Go

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
}