반응형

1. 서론

이번 포스팅에서는 CLI를 통해 간단한 사용 예제를 포스팅하려고 합니다.

 

예제로는 아래와 같습니다.

 

  1. 토픽 생성
  2. 토픽 리스트 조회
  3. 토픽 상세 조회
  4. message pub
  5. message sub
  6. 컨슈머 그룹의 offset/lag 정보 확인

2. 사용 예제

 

2-1 토픽 생성

 

  • 명령어 경로 = 카프카 설치 에서 진행한 ~/apps/confluent-5.4.0/bin 디렉토리에 있습니다.
  • 아래는 replication이 2이고, partition 갯수는 3개인 test_topic을 생성하는 명령어 입니다.
  • --bootstrap-server 에는 각 브로커 서버의 hostname과 port를 ',' 구분자로 적어주시면 됩니다.
    • 저의 경우 브로커 3대를 기입하였습니다.
    • 브로커의 default port는 9092 입니다.

 

kafka-topics --create --bootstrap-server broker-1:9092,broker-2:9092,broker-3:9092 --replication-factor 2 --partitions 3 --topic test_topic

 

2-2 토픽 조회

 

토픽을 생성하였으니 잘 생성되었는지 확인이 필요합니다.

이런 경우, 아래와 같이 토픽 리스트 조회 명령어를 수행하면 됩니다.

kafka-topics --list --bootstrap-server --bootstrap-server broker-1:9092,broker-2:9092,broker-3:9092

 

아래와 같이 test_topic을 확인할 수 있습니다.

 

 

2-3. 토픽 상세 조회

 

토픽 조회에서는 단순히 카프카에 있는 토픽명만을 리스트로 보여주게 됩니다.

토픽의 상세 내용을 조회하고 싶은 경우는 아래 명령어를 통해 확인할 수 있습니다.

kafka-topics --describe --bootstrap-server broker-1:9092,broker-2:9092,broker-3:9092 --topic test_topic

 

결과로는 아래 정보들을 확인할 수 있습니다.

  • partition 갯수
  • replication 수
  • reader broker id
  • isr

 

 

 

반응형

 

 

 

 

 

 

 

2-4. message pub

 

토픽을 생성하였으니, 이번엔 해당 토픽에 메시지를 pub 하겠습니다.

 

명령어는 아래와 같습니다.

kafka-console-producer --broker-list broker-1:9092,broker-2:9092,broker-3:9092 --topic test_topic

 

CLI의 경우 enter 기반으로 메시지를 구분합니다.

저는 아래와 같이 [hi, my name is, young!!] 이라는 3개의 메시지를 pub하였습니다.

 

 

2-5. message sub

 

이번에는 pub한 메시지를 sub을 해보겠습니다.

sub을 하기 위해서는 consumer를 통해 수행됩니다.

 

아래는 sub하는 명령어 입니다.

 

kafka-console-consumer --bootstrap-server broker-1:9092,broker-2:9092,broker-3:9092 --topic test_topic --group test_consumer_group --from-beginning

 

명령어를 보시면 --group을 하는 것을 볼 수 있습니다.

이것은 카프카란? 에서 설명드린것과 같이 consumer는 consumer group이 있어야 하기 때문입니다.

  • 저의 test_consumer_group 이란 consumer group을 가진 consumer를 통하여 sub을 하였습니다.

 

아래는 sub한 결과 사진입니다.

[hi, my name is, young!!] 순서대로 pub했지만 sub은 순서대로되지 않은것을 확인할 수 있습니다.

 

이는 topic의 partition 갯수가 1이 아니기 때문입니다.

  • 카프카에서는 메시지의 pub 순서를 보장하기 위해서는 파티션 갯수가 1이 아닌이상 보장이 되지 않습니다.

 

아래 사진의 latest Offset을 보시면 3개의 메시지들이 3개의 파티션에 각각 들어간것을 볼 수 있습니다.

따라서, consumer는 각 파티션의 메시지를 sub하였고, 위와 같이 순서가 보장되지 않은 결과를 볼 수 있습니다.

 

 

2-6. 컨슈머 그룹의 offset/lag 정보 확인

 

이번엔 특정 컨슈머 그룹의 offset/lag 정보를 확인하는 명령어 입니다.

 

명령어는 아래와 같습니다.

  • --group에 확인하고 싶은 consumer group을 기입합니다.(저의 경우 위에서 sub한 test_consumer_group을 지정하였습니다.)
kafka-consumer-groups --bootstrap-server broker-1:9092,broker-2:9092,broker-3:9092 --group test_consumer_group --describe

 

 

아래는 결과 사진입니다.

  • 위에서 테스트한 test_topic의 결과를 볼 수 있습니다.
  • pub 메시지를 모두 sub하였으니 각 파티션의 lag는 0입니다.

 

 

3. 마무리

이번 포스팅에서는 간단한 CLI 기반의 카프카 사용예제를 진행하였습니다.

다음 포스팅에서는 카프카 사용시 도움되는 Tool들에 대해 소개하도록 하겠습니다.

 

반응형

'MQ > Kafka' 카테고리의 다른 글

(6) spring kafka + schema registry + gradle plugin 적용  (4) 2020.10.22
(5) 카프카 사용 시 고려사항  (0) 2020.02.26
(4) 카프카 매니저 & 스키마 레지스트리  (0) 2020.02.26
(2) 카프카 설치  (0) 2020.02.25
(1) 카프카란?  (2) 2020.02.25

+ Recent posts