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