kafka: Add reader helper
This commit is contained in:
parent
57cfb90777
commit
bb99ca5843
@ -118,7 +118,7 @@ func (k *Kafka) kafkaTransport(ctx context.Context) (*kafka.Transport, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewKafka(ctx context.Context, tls TLSSetup) (*Kafka, error) {
|
func NewKafka(ctx context.Context, tls TLSSetup) (*Kafka, error) {
|
||||||
l := log.New(os.Stdout, "kafka reader: ", log.Ldate|log.Ltime|log.LUTC|log.Lmsgprefix|log.Lmicroseconds)
|
l := log.New(os.Stdout, "kafka: ", log.Ldate|log.Ltime|log.LUTC|log.Lmsgprefix|log.Lmicroseconds)
|
||||||
|
|
||||||
k := &Kafka{
|
k := &Kafka{
|
||||||
l: l,
|
l: l,
|
||||||
@ -172,17 +172,26 @@ func NewKafka(ctx context.Context, tls TLSSetup) (*Kafka, error) {
|
|||||||
return k, nil
|
return k, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k *Kafka) Writer(topic string) (*kafka.Writer, error) {
|
func (k *Kafka) NewReader(config kafka.ReaderConfig) *kafka.Reader {
|
||||||
|
config.Brokers = k.brokerAddrs()
|
||||||
|
config.Dialer = k.dialer
|
||||||
|
|
||||||
|
return kafka.NewReader(config)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (k *Kafka) brokerAddrs() []string {
|
||||||
addrs := []string{}
|
addrs := []string{}
|
||||||
|
|
||||||
for _, b := range k.brokers {
|
for _, b := range k.brokers {
|
||||||
addrs = append(addrs, fmt.Sprintf("%s:%d", b.Host, b.Port))
|
addrs = append(addrs, fmt.Sprintf("%s:%d", b.Host, b.Port))
|
||||||
}
|
}
|
||||||
|
return addrs
|
||||||
|
}
|
||||||
|
|
||||||
|
func (k *Kafka) NewWriter(topic string) (*kafka.Writer, error) {
|
||||||
|
|
||||||
// https://pkg.go.dev/github.com/segmentio/kafka-go#Writer
|
// https://pkg.go.dev/github.com/segmentio/kafka-go#Writer
|
||||||
w := &kafka.Writer{
|
w := &kafka.Writer{
|
||||||
Addr: kafka.TCP(addrs...),
|
Addr: kafka.TCP(k.brokerAddrs()...),
|
||||||
Transport: k.transport,
|
Transport: k.transport,
|
||||||
Topic: topic,
|
Topic: topic,
|
||||||
Balancer: &kafka.LeastBytes{},
|
Balancer: &kafka.LeastBytes{},
|
||||||
|
Loading…
Reference in New Issue
Block a user