প্রথম Kafka Topic তৈরি এবং ডেটা প্রডিউস ও কনজিউম করা

Kafka ইনস্টলেশন এবং সেটআপ - অ্যাপাচি কাফকা (Apache Kafka) - Big Data and Analytics

291

অ্যাপাচি কাফকা (Apache Kafka) এর সাহায্যে প্রথমবারের মতো একটি Kafka Topic তৈরি এবং সেটি দিয়ে ডেটা প্রডিউস (produce) ও কনজিউম (consume) করার প্রক্রিয়া বেশ সরল। এখানে আমরা কাফকায় টপিক তৈরি, মেসেজ প্রডিউস এবং কনজিউম করার জন্য প্রয়োজনীয় পদক্ষেপগুলো আলোচনা করব।


১. Kafka Broker চালু করা

প্রথমে, আপনাকে কাফকা ব্রোকার চালু করতে হবে। যদি আপনি একক কাফকা ব্রোকারে কাজ করছেন, তবে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে পারেন:

  1. Kafka এবং Zookeeper ইনস্টল করা:
    • প্রথমে, Kafka এবং Zookeeper (যা কাফকার ক্লাস্টার ব্যবস্থাপনার জন্য প্রয়োজন) ডাউনলোড ও ইনস্টল করতে হবে।
    • কাফকা ডাউনলোড করতে এখানে যান।
    • Zookeeper চালু করতে:

      bin/zookeeper-server-start.sh config/zookeeper.properties
      
  2. Kafka ব্রোকার চালু করা:

    কাফকা চালু করতে:

    bin/kafka-server-start.sh config/server.properties
    

২. Kafka Topic তৈরি করা

এখন কাফকা টপিক তৈরি করার সময় এসেছে। কাফকা টপিক হলো একটি ডেটা স্টোরেজ ইউনিট যেখানে মেসেজগুলো (বা ইভেন্টগুলো) রাখা হয়। একটি টপিক তৈরি করতে নিচের কমান্ড ব্যবহার করুন:

bin/kafka-topics.sh --create --topic my-first-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

এখানে:

  • --topic: টপিকের নাম (my-first-topic)।
  • --bootstrap-server: কাফকা ব্রোকারের এড্রেস (এখানে localhost:9092 দেওয়া হয়েছে)।
  • --partitions: টপিকের পার্টিশনের সংখ্যা (এখানে ১টি পার্টিশন)।
  • --replication-factor: পার্টিশনের রেপ্লিকা সংখ্যা (এখানে ১টি রেপ্লিকা)।

টপিক তৈরি হয়ে গেলে, আপনি এটি দেখতে পারেন:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

৩. Data Produce (প্রডিউস করা)

এখন আপনি কাফকা টপিকের মধ্যে ডেটা পাঠাতে পারেন। ডেটা প্রডিউস করার জন্য কাফকা প্রডিউসার ব্যবহার করতে হবে। এটি সাধারণত একটি কমান্ড লাইন টুল বা কোড দ্বারা করা হয়।

একটি সাধারন প্রডিউসার কমান্ড:

bin/kafka-console-producer.sh --topic my-first-topic --bootstrap-server localhost:9092

এটি চালানোর পর, আপনি মেসেজ টাইপ করতে পারবেন। আপনি যে কোন মেসেজ লিখে পাঠাতে পারেন, যেমন:

Hello Kafka!
This is my first message.

এখানে, যেকোনো মেসেজ টাইপ করে আপনি কাফকা টপিকে প্রডিউস করতে পারবেন।


৪. Data Consume (কনজিউম করা)

টপিক থেকে ডেটা কনজিউম করার জন্য কাফকা কনজিউমার ব্যবহার করতে হবে। কনজিউমার টপিক থেকে ডেটা নিয়ে আসে এবং প্রক্রিয়া করে। কাফকা কনজিউমার ব্যবহার করতে নিচের কমান্ডটি চালান:

bin/kafka-console-consumer.sh --topic my-first-topic --bootstrap-server localhost:9092 --from-beginning

এখানে:

  • --from-beginning: টপিকের সমস্ত ডেটা থেকে কনজিউম করতে এটি ব্যবহার করা হয়। যদি আপনি শুধুমাত্র নতুন মেসেজ কনজিউম করতে চান তবে এই অপশনটি বাদ দিতে পারেন।

কনজিউমার চালু হলে, আপনি আপনার প্রডিউস করা মেসেজ দেখতে পাবেন।


৫. Kafka Producer এবং Consumer কোডিং (Java Example)

যদি আপনি কাফকায় কোড দিয়ে প্রডিউস এবং কনজিউম করতে চান, তবে Java ব্যবহার করে নিম্নলিখিত উদাহরণ দেখুন:

Kafka Producer (Java Example):

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;

public class ProducerExample {
    public static void main(String[] args) {
        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<>(props);

        ProducerRecord<String, String> record = new ProducerRecord<>("my-first-topic", "key", "Hello Kafka!");
        producer.send(record);

        producer.close();
    }
}

Kafka Consumer (Java Example):

import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.util.Properties;
import java.util.Collections;

public class ConsumerExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("group.id", "test-group");
        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<>(props);
        consumer.subscribe(Collections.singletonList("my-first-topic"));

        while (true) {
            consumer.poll(100).forEach(record -> {
                System.out.println("Consumed: " + record.value());
            });
        }
    }
}

এই Java কোডে:

  • KafkaProducer: এটি মেসেজ প্রডিউস করে নির্দিষ্ট টপিকে পাঠায়।
  • KafkaConsumer: এটি নির্দিষ্ট টপিক থেকে ডেটা কনজিউম করে এবং প্রিন্ট করে।

সারাংশ

অ্যাপাচি কাফকা দিয়ে প্রথমবারের মতো একটি টপিক তৈরি করা এবং ডেটা প্রডিউস ও কনজিউম করার প্রক্রিয়া সহজ এবং সরল। প্রথমে কাফকা ব্রোকার চালু করতে হবে, তারপর টপিক তৈরি করে সেখানে মেসেজ প্রডিউস এবং কনজিউম করতে হবে। আপনি কাফকা কনসোল প্রডিউসার এবং কনসোল কনজিউমার ব্যবহার করে মেসেজ প্রডিউস ও কনজিউম করতে পারেন, অথবা Java প্রোগ্রামিং ভাষা ব্যবহার করে কোডের মাধ্যমে এ কাজগুলো সম্পন্ন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...