코딩마을방범대
[Kafka] 우분투에 kafka 설치 후 메시지 전송 테스트하기 본문
728x90
💬 목차
Kafka가 무엇인지는 아래 포스트를 참고하면 된다.
아파치 카프카(Apache Kafka)
우선 메시지 큐와 관련된 용어들을 함께 알아본 뒤에 카프카에 대해 알아볼 것이다! 메시지 지향 미들웨어(MOM; Message Oriented Middleware)응용 소프트웨어 간의 비동기적 데이터 통신을 위한
sweet-rain-kim.tistory.com
Kafka 세팅하기
1. Kafka 및 Zookeeper 다운로드
Index of /kafka/3.9.0
downloads.apache.org
목록이 쫘르륵 나오는데 여기서 현재 작성일 기준으로는 'kafka_2.13-3.9.0.tgz'를 다운로드 하면된다.
2.13는 Scala 버전이며, 2.13 등이 써있지않고 kafka 버전만 적혀있는 경우 Scala는 자동으로 3.0으로 적용된다.
Apache 공식 홈페이지를 확인해보면 2.13을 추천한다고 되어있다.
필자의 경우 ubuntu에서 진행 예정이므로 wget을 이용해 다운로드 해줄 것이다.
위 사이트에서 다운로드할 항목을 확인하여 마우스 우클릭 후 링크 주소 복사하여 wget으로 다운로드 받아준다.
wget https://downloads.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz
2. Kafka 압축 해제
tar -xzf kafka_2.13-3.9.0.tgz
cd kafka_2.13-3.9.0
3. Zookeeper 시작
bin/zookeeper-server-start.sh config/zookeeper.properties
Zookeeper
분산 시스템에서 데이터를 관리하고 조정하는 데 필요한 서비스
4. Kafka 서버 시작
bin/kafka-server-start.sh config/server.properties
5. Kafka 주제(Topic) 생성
bin/kafka-topics.sh --create --topic your_topic_name --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
옵션명 | 설명 |
your_topic_name | 생성할 주제의 이름 |
--partitions | 주제의 파티션 수 (default 1) |
--replication-factor | 복제 인수 (default 1) * 예를 들어, 복제 인수가 3으로 설정된 경우, 해당 토픽의 각 메시지는 3개의 서로 다른 브로커에 저장됩니다. 이로 인해 하나의 브로커가 다운되더라도 다른 두 브로커에서 데이터를 복구할 수 있습니다. * 복제 인수는 토픽을 생성할 때 설정하며, 카프카 클러스터 내에 존재하는 브로커 수보다 작거나 같아야 합니다. 예를 들어, 브로커가 3대인 경우 복제 인수는 1, 2, 또는 3으로 설정할 수 있습니다. |
토픽 삭제 명령어
bin/kafka-topics.sh --delete --topic your_topic_name --bootstrap-server localhost:9092
6. Kafka 주제 확인
주제가 정상적으로 생성되었는지 확인해준다.
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
7. Kafka 메시지 송신 및 수신
메시지 송신:
아래 명령어 실행 후 메시지를 입력하여 Enter 키를 누르면 해당 메시지가 주제로 송신된다.
bin/kafka-console-producer.sh --topic your_topic_name --bootstrap-server localhost:9092
메시지 수신:
아래 명령어로 송신된 메시지를 확인할 수 있다.
bin/kafka-console-consumer.sh --topic your_topic_name --from-beginning --bootstrap-server localhost:9092
728x90
'💡 백엔드 > 우분투' 카테고리의 다른 글
[우분투] 실행 파일 서비스로 등록하기 (0) | 2024.09.19 |
---|---|
[우분투] apt와 apt-get의 차이점 (0) | 2024.09.19 |
[우분투] 개별 폴더에 Nginx 각각 구축하기 (1) | 2024.01.25 |
우분투의 sshpass 사용해보기 (1) | 2024.01.24 |
우분투에서 파일 복사하기 (0) | 2024.01.16 |