Rumah > Java > javaTutorial > teks badan

Menggunakan Apache Kafka untuk pemprosesan mesej masa nyata dalam pembangunan API Java

WBOY
Lepaskan: 2023-06-18 09:08:42
asal
1217 orang telah melayarinya

Dengan peningkatan dalam keperluan perniagaan, pemprosesan mesej masa nyata telah menjadi salah satu keperluan perniagaan yang penting bagi banyak perusahaan. Apache Kafka ialah sistem pemesejan teragih berskala tinggi, ketersediaan tinggi dan berprestasi tinggi yang sesuai untuk pemprosesan mesej masa nyata berskala besar. Dalam pembangunan API Java, menggunakan Kafka untuk pemprosesan mesej masa nyata membolehkan penghantaran dan pemprosesan data yang cekap.

Artikel ini akan memperkenalkan cara menggunakan Apache Kafka untuk pemprosesan mesej masa nyata dalam pembangunan API Java. Pertama, pengetahuan asas dan konsep penting Kafka akan diperkenalkan. Kemudian, kami akan menerangkan secara terperinci cara menggunakan Kafka dalam pembangunan API Java.

1. Pengenalan kepada Apache Kafka

Apache Kafka ialah sistem pemesejan yang dibangunkan oleh LinkedIn yang boleh digunakan untuk menyelesaikan masalah pemprosesan maklumat masa nyata berskala besar. Kafka dicirikan oleh daya pemprosesan yang tinggi, kependaman rendah, kebolehpercayaan tinggi, skalabiliti dan toleransi kesalahan. Ia direka bentuk sebagai sistem teragih, di mana berbilang pengeluar boleh menghantar mesej kepada satu atau lebih topik, dan berbilang pengguna boleh menggunakan mesej daripada satu atau lebih topik. Pada masa yang sama, Kafka memproses data dengan daya pemprosesan yang sangat tinggi dan boleh menyimpan dan memproses aliran data masa nyata pada skala besar.

Dalam Kafka, mesej disusun mengikut topik dan partition. Topik secara logiknya serupa dengan jenis mesej dalam aplikasi, dan partition ialah subbahagian topik Setiap partition ialah baris gilir mesej. Dengan cara ini, mesej diedarkan kepada partition topik, dan pengimbangan beban dan toleransi kesalahan boleh dicapai melalui pembahagian.

2. Konsep asas Apache Kafka

  1. Broker

Sekumpulan Kafka terdiri daripada berbilang Broker, dan setiap Broker ialah pelayan Kafka. Broker menerima mesej daripada Pengeluar dan menghantarnya kepada Pengguna Broker juga bertanggungjawab untuk menyimpan mesej dalam partition topik.

  1. Topik

Topik ialah konsep logik yang digunakan untuk mengenal pasti kategori mesej yang dihasilkan oleh Penerbit. Setiap Topik boleh dibahagikan kepada berbilang Partition, dan setiap Partition boleh berada dalam Broker yang berbeza.

  1. Partition

Partition ialah sub-partition dalam topik Kafka, dan mesej dalam setiap Partition disusun.

  1. Producer

Producer ialah pengeluar yang boleh digunakan untuk menghantar data kepada Broker gugusan Kafka Pada masa yang sama, Producer boleh memilih untuk menghantar mesej kepada Partition tertentu.

  1. Pengguna

Pengguna ialah pengguna yang menggunakan mesej pada Broker gugusan Kafka. Berbilang Pengguna boleh menggunakan mesej dalam partition Topik yang sama untuk mencapai pengimbangan beban mesej.

  1. ID Kumpulan

ID Kumpulan digunakan untuk mengenal pasti kumpulan yang menjadi milik Pengguna Pengguna dalam kumpulan yang sama boleh bersama-sama menggunakan mesej dalam satu atau lebih sekatan Topik. Hanya seorang Pengguna dalam kumpulan boleh menggunakan mesej dalam partition Topik.

  1. Offset

Offset ialah offset yang digunakan untuk mengenal pasti mesej yang telah digunakan oleh Pengguna. Kafka menggunakan Offset untuk memastikan susunan mesej.

3. Menggunakan Apache Kafka dalam pembangunan API Java

Dalam pembangunan API Java, kami boleh menggunakan API Java Kafka untuk pemprosesan mesej masa nyata. Mula-mula, kita perlu memperkenalkan pakej balang API Java Kafka ke dalam program, dan kemudian menulis kod Java.

  1. Pengeluar

Dalam API Java, kita boleh menggunakan kelas KafkaProducer untuk menghantar mesej kepada Broker gugusan Kafka. Berikut ialah kod pelaksanaan pengeluar mudah:

    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
 
    KafkaProducer<String, String> producer = new KafkaProducer<String, String>(props);
 
    ProducerRecord<String, String> record = new ProducerRecord<String, String>("mytopic", "key", "value");
    producer.send(record);
 
    producer.close();
Salin selepas log masuk

Dalam kod di atas, kami mula-mula membina objek KafkaProducer, tetapkan alamat Broker gugusan Kafka, dan kemudian tetapkan kaedah siri Kunci dan Nilai bagi mesej masing-masing . Akhirnya, rekod pengeluar (ProducerRecord) dibuat dan dihantar ke gugusan Kafka.

  1. Pengguna

Dalam API Java, kita boleh menggunakan kelas KafkaConsumer untuk menggunakan mesej daripada gugusan Kafka. Berikut ialah kod pelaksanaan pengguna yang mudah:

    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("group.id", "mygroup");
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
 
    KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
 
    List<String> topics = new ArrayList<String>();
    topics.add("mytopic");
    consumer.subscribe(topics);
 
    while (true) {
        ConsumerRecords<String, String> records = consumer.poll(1000);
        for (ConsumerRecord<String, String> record : records)
            System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
    }
Salin selepas log masuk

Dalam kod di atas, kami mula-mula membina objek KafkaConsumer dan menetapkan alamat Broker gugusan Kafka, ID Kumpulan dan kaedah penyahserikatan Kunci dan Nilai bagi mesej. Kemudian tentukan Topik dan langgan Topik, dan akhirnya gunakan kaedah tinjauan pendapat() untuk menggunakan mesej daripada gugusan Kafka.

4. Ringkasan

Artikel ini memperkenalkan konsep asas Apache Kafka dan kaedah menggunakan Kafka untuk pemprosesan mesej masa nyata dalam pembangunan API Java. Dalam pembangunan sebenar, kita boleh memilih konfigurasi dan kaedah pembangunan Kafka yang sesuai berdasarkan keperluan perniagaan sebenar. Kafka dicirikan oleh daya pemprosesan yang tinggi, kependaman rendah, kebolehpercayaan yang tinggi, skalabiliti dan toleransi kesalahan Ia mempunyai kelebihan yang jelas dalam pemprosesan maklumat masa nyata berskala besar. Saya harap artikel ini akan membantu semua orang.

Atas ialah kandungan terperinci Menggunakan Apache Kafka untuk pemprosesan mesej masa nyata dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan