You are on page 1of 7

3/20/2022 Modul Praktikum

Sistem Terdistribusi

Pertemuan 6
Pokok Bahasan :

Membuat Producer kafka dan Konsumer Kafka dengan


Java

Memahami Konsumer Grup

Kebutuhan
Komputer / Laptop

NetBeans

Nandang Hermanto
UNIVERSITAS AMIKOM PURWOKERTO
Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

Latihan sistem terdistribusi pada pertemuan 6 ini akan membahas bagaimana


membuat producer kafka dan konsumer kafka menggunakan bahasa
pemroraman java.

Ikuti langkah-langkah berikut ini

1. Pastikan sudah terinstall JAVA di komputer anda


Untuk memastikan apakah java sudah terinstall di komputer anda masuk ke command
prompt dengan cara Start – CMD
Kemudian keteikan java – version

Gambar diatas menunjukan java sudah terinstall

Jika java belum terinstall silakan install java dari alamat berikut ini
https://www.oracle.com/java/technologies/downloads/
2. Membuat Producer Kafka
a. Buka NetBeans Kemudian Buat Project Java With Maven - Java Application

b. Buka file pom.xml kemudian tambahkan dependency berikut ini

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto


Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.3.1</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>

c. Buat file Java baru dengan nama KafkaProducer.java


Kode Program
public class KafkaProducer {

public static void main(String[] args) {


Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("linger.ms", 1);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


String baca = "";

try ( Producer<String, String> producer = new


org.apache.kafka.clients.producer.KafkaProducer<>(props)) {
System.out.println("");
do {
try {
System.out.println("\nMasukan pesan yang akan dikirim\nketikan keluar untuk
mengakhiri");
baca = br.readLine();
} catch (IOException ex) {
Logger.getLogger(KafkaProducer.class.getName()).log(Level.SEVERE, null, ex);
}

producer.send(new ProducerRecord<>("quickstart-events", baca, baca));

} while (!baca.equalsIgnoreCase("keluar"));
}
}

3. Membuat Konsumer Kafka


Buat file Java baru pada project yang sama dengan file KafkaProducer.java dengan nama
KafkaKonsumer.java

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto


Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

Kode Program
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("group.id", "test3");
props.setProperty("enable.auto.commit", "true");
props.setProperty("auto.commit.interval.ms", "1000");
props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.setProperty("value.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList("quickstart-events"));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
for (ConsumerRecord<String, String> record : records) {
System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(),
record.value());
}
}
}

4. Jalankan ZooKeeper dengan langkah berikut ini


a. Atur konfigurasi zookeeper dengan cara buka file zookeeper.properties yang berada
di alamat C:\kafka\config menggunakan text editor kemudian sesuaikan baris berikut
ini

dataDir=/data/zookeeper
clientPort=2181
maxClientCnxns=0

Keterangan :
dataDir adalah alamat tempat menyimpat data
clientPort adalah port tempat zookeeper dijalankan
maxClientCnxns adalah jumlah client maksimal yang dapat terkoneksi

b. Buka command prompt kemudian masuk ke folder Kafka dengan cara


Cd\kafka
c. Ketikan perintah berikut ini
bin\windows\zookeeper-server-start.bat config/zookeeper.properties
keteranan :

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto


Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

 bin\windows adalah alamat file zookeeper-server-start.bat berada


 zookeeper-server-start.bat adalah file yang dieksekusi/dipanggil
 config/ adalah alamat file konfigurasi zookeeper
 zookeeper.properties adalah file konfigurasi zookeeper yang digunakan
d. pastikan jendela command prompt ini tetap terbuka agar zookeeper tetap berjalan
5. Jalankan Server Kafka dengan langkah berikut ini
a. Atur konfigurasi server kafka dengan cara buka file server.properties yang berada di
alamat C:\kafka\config menggunakan text editor kemudian sesuaikan baris berikut
ini

broker.id=0
log.dirs=/data/kafka-logs
zookeeper.connect=localhost:2181

Keterangan :
broker.id adalah id server kafka, jika server lebih dari 1 maka harus unik untuk
sertiap server
log.dirs adalah tempat menyimpan data log
zookeeper.connect adalah lokasi zookeeper

a. Buka command prompt baru kemudian masuk ke folder Kafka dengan cara
Cd\kafka
b. Ketikan perintah berikut ini
bin\windows\kafka-server-start.bat config/server.properties
keteranan :
 bin\windows adalah alamat file kafka-server-start.bat berada
 kafka-server-start.bat adalah file yang dieksekusi/dipanggil
 config/ adalah alamat file konfigurasi kafka server
 server.properties adalah file konfigurasi kafka server yang digunakan
c. pastikan jendela command prompt ini tetap terbuka agar server kafka tetap
berjalan

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto


Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

6. Buat Topik Baru dengan langkah berikut ini


a. Buka command prompt baru kemudian masuk ke folder Kafka dengan cara
Cd\kafka
b. Ketikan perintah berikut ini
bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server
localhost:9092
Keterangan :
 quickstart-events adalah nama topik yang dibuat
 localhost:9092 adalah alamat server kafka berada
7. Jalankan Producer yang sudah dibuat pada langkah 2 dengan cara click kanan pada file
KafkaProducer.java kemudian pilih Run File

8. Jalankan Konsumer yang sudah dibuat pada langka 2 dengan cara click kanan pada file
KonsumerKafka.java kemudian pilih Run File

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto


Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

Percobaan :

1. Jalankan konsumer beberapa kali dengan terlebih dahulu mengganti grup.id dengan nama
yang unik, kemudian kirmkan beberapa pesan dari producer. Amati apakah semua
konsumer tersebut dapat menerima pesan yang dikirimkan dari producer
2. Jalankan konsumer beberapa kali tanpa mengganti grup.id dengan nama yang unik,
kemudian kirmkan beberapa pesan dari producer. Amati apakah semua konsumer
tersebut dapat menerima pesan yang dikirimkan dari producer
3. Ulangi percobaan1 dan percobaan2 beberapa kali dengan topik yang berbeda

Sistem Terdistribusi – Nandang Hermanto – Universitas AMIKOM Purwokerto

You might also like