0

When running this program under MacOS,

package main

import (
        "context"
        "fmt"
        "log"
        "os"
        "os/signal"
        "sync"

        "github.com/segmentio/kafka-go"
)

const (
        brokerAddress = "localhost:9092"
        topic         = "my-topic"
)

func main() {
        // Create a new Kafka writer to produce messages
        writer := kafka.NewWriter(kafka.WriterConfig{
                Brokers:  []string{brokerAddress},
                Topic:    topic,
                Balancer: &kafka.LeastBytes{},
        })

        // Create a new Kafka reader to consume messages
        reader := kafka.NewReader(kafka.ReaderConfig{
                Brokers: []string{brokerAddress},
                Topic:   topic,
        })

        // Start a goroutine to handle incoming messages
        go func() {
                for {
                        message, err := reader.ReadMessage(context.Background())
                        if err != nil {
                                log.Println("Failed to read message:", err)
                                continue
                        }
                        fmt.Printf("Received message: %s\n", message.Value)
                }
        }()

        // Produce a sample message
        err := writer.WriteMessages(context.Background(),
                kafka.Message{
                        Key:   []byte("key"),
                        Value: []byte("Hello, Kafka!"),
                },
        )
        if err != nil {
                log.Println("Failed to produce message:", err)
        }

        // Wait for interrupt signal to exit
        wg := sync.WaitGroup{}
        wg.Add(1)
        go func() {
                defer wg.Done()
                c := make(chan os.Signal, 1)
                signal.Notify(c, os.Interrupt)
                <-c
        }()

        wg.Wait()

        // Close the Kafka writer and reader
        writer.Close()
        reader.Close()
}

I get an runtime error:

idf@Ivans-MacBook-Pro go % go run main.go
2023/06/17 20:46:11 Failed to read message: [6] Not Leader For Partition: the client attempted to send messages to a replica that is not the leader for some partition, the client's metadata are likely out of date

EDIT 1

idf@Ivans-MacBook-Pro go % brew services list
Name      Status  User          File
kafka     started idf ~/Library/LaunchAgents/homebrew.mxcl.kafka.plist
mysql     started idf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
nginx     started idf ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
php       started idf ~/Library/LaunchAgents/homebrew.mxcl.php.plist
questdb   started idf ~/Library/LaunchAgents/homebrew.mxcl.questdb.plist
redis     started idf ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
zookeeper started idf ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
Ivan
  • 7,448
  • 14
  • 69
  • 134

0 Answers0