saay, hi

카프카 롤링 업그레이드 본문

kafka 설치 및 구성/설치가이드

카프카 롤링 업그레이드

saay-hi 2024. 7. 1. 17:39
최신 버전의 카프카 다운로드와 설정

1. 업그레이드 하고자 하는 대상 카프카 버전을 다운로드

1)  카프카 다운로드는 모든 브로커에서 진행해야함
2) 현재 운영 중인 버전의 카프카 설정과 새롭게 설치한 버전의 카프카 설정이 일치해야 하므로, 현재 버전의 설정 파일을 새롭게 설치할 새 버전 설정 파일 경로로 복사함
3) inter.broker.protocol.version과 log.messasge.format.version 항목을 추가함
$>vi kafka/config/server.properties

inter.broker.protocol.version=현재버전
log.message.format.version=현재 버전
위 설정은 카프카가 업그레이드 되더라도 브로커 간의 내부 통신과 메시지 포맷은 현재 버전을 유지한다는 의미임
위 설정을 기입하지 않고 업그레이드 진행시 하위 버전 브로커들과 통신이 불가함

 

2. 브로커 버전 업그레이드

1) 한 대씩 순차적으로 진행 예정
2) 업그레이드 하려는 브로커 종료 (중요)
3) 현재 버전으로 연결되어 있는 kafka 심볼릭 링크를 업그레이드 하려는 새 버전으로 변경
$> rm -rf kafka
$> ln -sf kafka_새버전 kafka
업그레이드를 하였어도 내부 브로커 프로토콜 버전과 메시지 포맷 버전은 모두 현재 버전으로 맞춰서 있으므로 정상적으로 통신 가능함

 

3. 나머지 브로커 동일하게 실행

1. 업그레이드 대상 브로커 접속
2. 브로커 종료
3. kafka 링크 삭제
4. kafka 링크 새 버전으로 재 생성
5. 설정 파일 복사 및 옵션 설정
6. 브로커 시작

 

4. 브로커 설정 변경

1) inter.broker.protocol.version, log.message.format.version옵션 삭제
- 삭제하고 바로 적용되는 것은 아님
2) 브로커 한 대씩 재시작
3) 브로커 정상 기동 확인
1. 새로운 메시지 잘 받는지 확인
$>bin/kafka-console-producer.sh --bootstrap-server broker1:9092 --topic bro_upgrade_test
>bro_upgrade_4
>bro_upgrade_5

2. 메시지 전송 후 컨슈머를 이용해 메시지 가져옴
$>bin/kafka-console-consumer.sh --bootstrap-server broker1:9092 --topic bro_upgrade_test --group {consumer group명}

[출력]
>bro_upgrade_4
>bro_upgrade_5

3. 업그레이드 하기 전의 메시지도 가져올 수 있는지 확인
$>bin/kafka-console-consumer.sh --bootstrap-server broker1:9092 --topic bro_upgrade_test --from-beginning

[출력]
>bro_upgrade_1
>bro_upgrade_2
>bro_upgrade_3
>bro_upgrade_4
>bro_upgrade_5