- Mengkonsumsi pesan dari topik tertentu ("my-topic" dalam contoh)
- Menampilkan pesan sebagai string ke terminal
- Mengatur strategi rebalance dan offset awal untuk grup konsumen
- Mengirim pesan string ("Hello, world!" dalam contoh) ke topik tertentu ("my-topic" dalam contoh)
- Menggunakan produsen asynchronous
- File ini dibagi menjadi dua package: consumer dan producer.
- Setiap package berisi fungsi main untuk menjalankan masing-masing role.
- 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).
- Membuat Grup Konsumen:
- Gunakan sarama.NewConsumerGroup untuk membuat grup konsumen dengan konfigurasi, alamat server Kafka, dan nama grup.
- Subscribe ke Topik:
- Gunakan consumerGroup.Consume untuk subscribe ke topik yang diinginkan dan handler pemrosesan pesan.
- 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.
- Menutup Grup Konsumen:
- Gunakan defer consumerGroup.Close() untuk menutup grup konsumen saat program berakhir.
- Konfigurasi:
- config.ClientID: Set nama ID untuk produsen.
- Membuat Pesan:
- Gunakan sarama.ProducerMessage untuk membuat objek pesan dengan topik dan nilai (string dalam contoh).
- Membuat Produsen Asynchronous:
- Gunakan sarama.NewAsyncProducer untuk membuat produsen dengan konfigurasi dan alamat server Kafka.
- Kirim Pesan:
- Gunakan p.Input() <- message untuk mengirim pesan ke channel input produsen.
- Menutup Produsen:
- Gunakan defer p.Close() untuk menutup produsen saat program berakhir.
- 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
- Run consumer app
go run cmd/consumer/main.go
- Run producer app
go run cmd/producer/main.go
Install Golang Kafka Package Sarama
Download JDK(Java Development Kit) By Eclipse Temurin