Skip to content

GeraAnggaraPutra/go-kafka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Go Kafka

Consumer Kafka:

  • Mengkonsumsi pesan dari topik tertentu ("my-topic" dalam contoh)
  • Menampilkan pesan sebagai string ke terminal
  • Mengatur strategi rebalance dan offset awal untuk grup konsumen

Producer Kafka:

  • Mengirim pesan string ("Hello, world!" dalam contoh) ke topik tertentu ("my-topic" dalam contoh)
  • Menggunakan produsen asynchronous

Struktur File:

  • File ini dibagi menjadi dua package: consumer dan producer.
  • Setiap package berisi fungsi main untuk menjalankan masing-masing role.

Consumer Role:

  1. Konfigurasi
    • config.ClientID: Set nama ID untuk konsumen.
    • config.Consumer.Group.Rebalance.Strategy: Pilih strategi rebalance grup (Range dalam contoh).
    • config.Consumer.Offsets.Initial: Tentukan offset awal untuk membaca pesan (Oldest dalam contoh).
  2. Membuat Grup Konsumen:
    • Gunakan sarama.NewConsumerGroup untuk membuat grup konsumen dengan konfigurasi, alamat server Kafka, dan nama grup.
  3. Subscribe ke Topik:
    • Gunakan consumerGroup.Consume untuk subscribe ke topik yang diinginkan dan handler pemrosesan pesan.
  4. Handler Pemrosesan Pesan:
    • Fungsi ConsumeClaim dipanggil untuk setiap pesan yang tersedia.
    • for message := range claim.Messages(): Iterasi melalui pesan yang tersedia.
    • value := string(message.Value): Ubah byte pesan menjadi string.
    • fmt.Println(value): Cetak string pesan ke terminal.
    • session.MarkMessage(message, ""): Tandai pesan sebagai telah dikonsumsi.
  5. Menutup Grup Konsumen:
    • Gunakan defer consumerGroup.Close() untuk menutup grup konsumen saat program berakhir.

Producer Role:

  1. Konfigurasi:
    • config.ClientID: Set nama ID untuk produsen.
  2. Membuat Pesan:
    • Gunakan sarama.ProducerMessage untuk membuat objek pesan dengan topik dan nilai (string dalam contoh).
  3. Membuat Produsen Asynchronous:
    • Gunakan sarama.NewAsyncProducer untuk membuat produsen dengan konfigurasi dan alamat server Kafka.
  4. Kirim Pesan:
    • Gunakan p.Input() <- message untuk mengirim pesan ke channel input produsen.
  5. Menutup Produsen:
    • Gunakan defer p.Close() untuk menutup produsen saat program berakhir.

Running Kafka (Windows):

  • Run zookeeper
    [your kafka directory] bin\windows\zookeeper-server-start.bat config\zookeeper.properties
  • Run kafka server
    [your kafka directory] bin\windows\kafka-server-start.bat config\server.properties
  • Run producer
    [your kafka directory] bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic your-topic-name
  • Run consumer
    [your kafka directory] bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic your-topic-name --from-beginning

Running App:

  • Run consumer app
    go run cmd/consumer/main.go
  • Run producer app
    go run cmd/producer/main.go

Kafka Documentation

Install Golang Kafka Package Sarama


Download JDK(Java Development Kit) By Eclipse Temurin


Download Kafka

About

Golang kafka consumer and producer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages