Sarama: Health check with sarama.AsyncProducer?

Created on 24 Jul 2019  路  3Comments  路  Source: Shopify/sarama

Versions

Sarama Version: 1.22.1
Kafka Version: 1.1.1
Go Version:1.12

Problem Description

Hello, how we can make health check with sarama.AsyncProducer?

question

Most helpful comment

Resolve that using sarama.NewAsyncProducerFromClient(saramaClient):

func NewProducer(saramaCfg *sarama.Config, brokers []string) (*Producer, error) {
    saramaClient, err := sarama.NewClient(brokers, saramaCfg)
    if err!=nil{
        return nil, err
    }

    saramaProducer, err := sarama.NewAsyncProducerFromClient(saramaClient)
    if err != nil {
        return nil, errors.WithStack(err)
    }

    producer := &Producer{client:saramaClient, saramaProducer: saramaProducer}

    return producer, nil
}

Attach client to internal struct:

type Producer struct {
    client sarama.Client
    saramaProducer   sarama.AsyncProducer
}

And create method IsHealthy

func (p *Producer) IsHealthy() bool {
    return len(p.client.Brokers()) > 0
}

Its look like tricky, but its works for me)

All 3 comments

Resolve that using sarama.NewAsyncProducerFromClient(saramaClient):

func NewProducer(saramaCfg *sarama.Config, brokers []string) (*Producer, error) {
    saramaClient, err := sarama.NewClient(brokers, saramaCfg)
    if err!=nil{
        return nil, err
    }

    saramaProducer, err := sarama.NewAsyncProducerFromClient(saramaClient)
    if err != nil {
        return nil, errors.WithStack(err)
    }

    producer := &Producer{client:saramaClient, saramaProducer: saramaProducer}

    return producer, nil
}

Attach client to internal struct:

type Producer struct {
    client sarama.Client
    saramaProducer   sarama.AsyncProducer
}

And create method IsHealthy

func (p *Producer) IsHealthy() bool {
    return len(p.client.Brokers()) > 0
}

Its look like tricky, but its works for me)

Hey @Zaazik it seems you found an answer for this, can this issue be closed?

seems it's already resolved, feel free to re-open the issue if need more help.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

funkol2007 picture funkol2007  路  4Comments

blackfox1983 picture blackfox1983  路  3Comments

danpmx picture danpmx  路  7Comments

DimaSalakhov picture DimaSalakhov  路  5Comments

korjavin picture korjavin  路  3Comments