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