[Kafka] Kafka

이정훈·2023년 3월 20일
0

kafka

목록 보기
1/5
post-thumbnail

분산 스트리밍 플랫폼!

이 친구는? 왜쓰는지?

  • 이렇게 복잡한 것을을 간단하게 구현할 수 있다.
    자세한설명!

Kafka란?

  • 각 자의 아이피를 입력해서 서로 통신하는게 아니라 카프카를 통해서 연결 관리가 용이해진다.
  • 각 서버의 IP가 변하더라도 변경할 필요없다.
  • 중앙에서 카프카로 왔다깠다 하도록 도와준다!

특징

  • 빠르다
    수 천개의 데이터 소스로 부터 초당 수백 메가바이트의 데이터를 입력 받아도 안정적으로 처리 가능
  • 확장가능
    메시지를 파티션으로 분리햐여 분산 저장, 처리할 수 있어 클러스터로 구성하여 확장 가능
  • 안정적이다
    클러스터에 파티션 복제하여 장애 내구성을 가짐

구조

  • PUB(producer)발행자 - SUB(consumer)구독자 모델로 구성
  • Topic(주제)에 맞는 Broker(브로커)에게 전탈하면 구독자가 브로커에게 요청해서 가져가는 방식
    발행자는 메시지를 topic으로 카테고리화
    구독자는 topic에 맞는 메시지를 브로커에게 요청
    발행자와 구독자는 서로 알지 못함

간단하게 구동해보기

  • 서버 3대 준비하기
    200.200.200.5 broker
    200.200.200.6 producer
    200.200.200.7 consumer
yum -y install java-1.8.0-openjdk-devel.x86_64
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -xzvf kafka_2.13-3.4.0.tgz
mv kafka_2.13-3.4.0 /opt/kafka
  • 3세 모두 설치
    브로커만 카프카를 설치해줘도 되는데 우린 서로 통신하는지 확인하기 위해 모두 설치
    (기본적으로 가지고있는 콘솔을 이용할 예정)
  • 자바 기반이기 때문에 자바도 같이 설치!

broker

/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
  • 주키퍼가 카프가를 관리하기 때문에 주키퍼를 설치하고 카프카를 실행해줘야한다.
    (동물원 지키미... 사용되는 프로그램의 아이콘이 동물... 뭐 암틈)
vi /opt/kafka/config/server.properties
38번 라인에 advertised.listeners 설정
주석 해제 후 
advertised.listeners=PLAINTEXT://[브로커IP]:9092
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
  • 다른 터미널창 하나를 더 실행시켜서 진행
  • 연결해주는 자기 자신의 IP를 작성해줘야 한다.
  • 실행!

producer

/opt/kafka/bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server [broker IP]:9092

consumer

/opt/kafka/bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server [broker IP]:9092

  • 서로 통신하는 것을 확인
  • 현재 서로의 ip를 모르는 상태이다.!
profile
싱숭생숭늉

0개의 댓글