Monday, January 21, 2019

Apache Kafka-ს ინსტალაცია Ubuntu-ზე და Publish/Consume მაგალითი


რა არის Apache Kafka ?

Apache Kafka არის streaming პლათფორმა რომელსაც შეუძლია დაამუშავოს ტრილიონობით event-ები დღის განმავლობაში. თავდაპირველად ჩაფიქრებული იყო როგორც messaging queue. Kafka დაფუძნებულია distributed commit log-ის აბსტრაქციაზე. მას შემდეგ რაც შეიქმნა და open source გახდა LinkedIn-ის მიერ 2011 წელს, Kafka messaging queue-დან გარდაიქმნა სრულფასოვან streaming პლათფორმად.


Install Apache Kafka on Ubuntu
პირველ რიგში უნდა მოვახდინოთ package reposiotry cache-ის update შემდეგი ბრძანებით.
sudo apt-get update
Apache Kafka დამოკიდებულია Java-ზე, ამიტომ წინაპირობაა რომ სერვერზე, რომელზეც გვინდა Kafka-ს დაყენება დაინსტალირებული იყოს JDK. თუ უკვე არ გვაქვს დაინსტალირებული, ამის გაკეთება შეგვიძლია შემდეგი ბრძანებით:
sudo apt-get install openjdk-8-jdk
შემდეგი ეტაპი არის zookeeper-ის დაინსტალირება.
sudo apt-get install zookeeperd
იმის შესამოწმებლად დაინსტალირდა თუ არა zookeeper ჩვენს სერვერზე, შეგვიძლია გავუშვათ შემდეგი ბრძანება:
sudo systemctl status zookeeper


თუ რაიმე მიზეზის გამო, zookeeper არ არის started მდგომარეობაში, მაშინ შეგიძლიათ გაუშვათ შემდეგი ბრძანება:

sudo systemctl start zookeeper
და ასევე zookeeper რომ system startup-ზე მივაბათ საჭიროა გავუშვათ შემდეგი ბრძანება:
sudo systemctl enable zookeeper


ახლა უკვე დადგა დრო გადმოვწეროთ Apache Kafka. ამ კონკრეტული შემთხვევისთვის, შეგვიძლია გადმოვწეროთ 1.1.1 ვერსია.
წინა ბრძანება გადმოწერს Apache Kafka-ს კომპრესირებულ არქივს.
ახლა შეგიძლიათ შექმნათ Kafka ფოლდერი /opt ფოლდერში.
mkdir opt
mkdir opt/Kafka
ახლა კი შეგვიძლია extract გავუკეთოთ Kafka არქივს /opt/Kafka ფოლდერში
sudo tar xvzf kafka_2.12-1.1.1.tgz -C /opt/Kafka
წინა ოპერაციის წარმატებულობა შეგიძლია შეამოწმოთ შემდეგი ბრძანებით
ls /root/opt/kafka

ახლა გახსენით ~/.profile ფაილი
sudo nano ~/.profile
და ბოლოში დაამატეთ
export KAFKA_HOME=”/root/opt/Kafka/kafka_2.12-1.1.1”
export PATH=”$PATH:${KAFKA_HOME}/bin”
და შეინახეთ ფაილი.

ახლა გახსენით ~/.bashrc ფაილი
sudo nano ~/.bashrc
და ბოლოში დაამატეთ
Alias sudo=’sudo env PATH=”$PATH”’
და შეინახეთ.

შემდეგ კი დაარესტარტეთ სერვერი
sudo reboot

სისტემის ახლიდან ჩატვირთვის შემდეგ, შეამოწმეთ KAFKA_HOME
echo $KAFKA_HOME

შემდეგი ეტაპი არის ჩვენთვის „სიცოცხლის გამარტივება“, გავაკეთოთ სიმბოლური ლინკი Kafka server.properties ფაილის  შემდეგი ბრძანებით
sudo ln -s $KAFKA_HOME/config/server.properties /etc/kafka.properties

შემდეგი ეტაპი უკვე არის გატესტვა
შემდეგი ბრძანებით შეგვიძლია Kafka-ს სერვერი „დავქოქოთ“ ანუ start  გავაკეთოთ
sudo kafka-server-start.sh /etc/kafka.properties
როცა უკვე Kafka Server დაისტარტება შეგვიძლია შევქმნათ testing topic-ი. ამისთვის გავხსნათ ახალი command line tab და გავუშვათ შემდეგი ბრძანება
sudo kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testing
შედეგი უნდა იყოს შემდეგი


ახლა გავუშვათ Producer API,რომ შევძლოთ შეტყობინების გაგზავნა
sudo kafka-console-producer.sh --broker-list localhost:9092 --topic testing
როცა Enter-ს დავაწვებით გამოვა ინტერაქტიული ფანჯარა (>) იქნება, სადაც შეგვიძლია ავკრიფოთ შეტყობინება და Enter-ზე დაჭერით გავაგზავნოთ, მაგალითად


შემდეგ უნდა გავუშვათ Consumer API, რომ გაგზავნილი შეტყობინებები მივიღოთ. შეტყობინების მიღება ხდება მომენტალურად, ხოლო თუ გაგზავნი შემთხვევაში Consumer API არ არის დასტარტული, მაშინ დასტარტვამდე გაგზანილ ყველა შეტყობინებას ერთიანად მივიღებთ.
Consumer API-ც ახალ command line tab-ში დავსტარტოთ
sudo kafka-console-consumer.sh --zookeeper localhost:2181 --topic testing --from-beginning
ახლა შევამოწმოთ ჩვენი გაგზავნილი შეტყობინება თუ მივიღეთ, გადავიდეთ Consumer-ის TAB-ში და ვნახავთ რომ შეტყობინება მოვიდა.






No comments:

Post a Comment