feat kafka
This commit is contained in:
@@ -11,10 +11,9 @@ var client *Client
|
||||
type Client struct {
|
||||
producer sarama.AsyncProducer
|
||||
consumer sarama.ConsumerGroup
|
||||
serverName string
|
||||
}
|
||||
|
||||
func Init(cfg *config.KafkaConfig, serverName string) error {
|
||||
func Init(cfg *config.KafkaConfig) error {
|
||||
producer, err := getAsyncProducer(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -26,7 +25,6 @@ func Init(cfg *config.KafkaConfig, serverName string) error {
|
||||
client = &Client{
|
||||
producer: producer,
|
||||
consumer: consumer,
|
||||
serverName: serverName,
|
||||
}
|
||||
go producerError()
|
||||
go consumerError()
|
||||
|
||||
@@ -63,7 +63,7 @@ func (h *handler) Cleanup(sess sarama.ConsumerGroupSession) error {
|
||||
func (h *handler) ConsumeClaim(sess sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {
|
||||
for message := range claim.Messages() {
|
||||
ctx := NewCarrier().ExtractConsumer(message.Headers)
|
||||
_, span := otel.Tracer(client.serverName).Start(ctx, "kafka.consume")
|
||||
_, span := otel.Tracer("common.db.kafka").Start(ctx, "kafka.consume")
|
||||
if err := h.handler(ctx, message); err != nil {
|
||||
if stack, ok := err.(interface{ StackTrace() string }); ok {
|
||||
span.AddEvent("Stack Trace", trace.WithAttributes(
|
||||
|
||||
@@ -26,7 +26,7 @@ func (c *Producer) Produce(ctx context.Context, topic, value string) {
|
||||
func producerError() {
|
||||
for err := range client.producer.Errors() {
|
||||
ctx := NewCarrier().ExtractProducer(err.Msg.Headers)
|
||||
_, span := otel.Tracer(client.serverName).Start(ctx, "kafka.producer")
|
||||
_, span := otel.Tracer("common.db.kafka").Start(ctx, "kafka.producer.error")
|
||||
span.SetStatus(otelcodes.Error, err.Error())
|
||||
span.End()
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import (
|
||||
type DB struct {
|
||||
DefaultModule
|
||||
cfg *config.DBConfig
|
||||
serviceName string
|
||||
}
|
||||
|
||||
func (m *DB) Init() error {
|
||||
@@ -37,7 +36,7 @@ func (m *DB) Init() error {
|
||||
}
|
||||
// KAFKA
|
||||
if m.cfg.Kafka != nil {
|
||||
if err := kafka.Init(m.cfg.Kafka, m.serviceName); err != nil {
|
||||
if err := kafka.Init(m.cfg.Kafka); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -67,8 +66,5 @@ func (m *DB) Bind(data ...any) Module {
|
||||
if cfg, ok := data[0].(*config.DBConfig); ok {
|
||||
m.cfg = cfg
|
||||
}
|
||||
if name, ok := data[1].(string); ok {
|
||||
m.serviceName = name
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user