19.4. Kafka 브로커 및 Zoo Cryostat 업그레이드
최신 버전의 AMQ Streams를 사용하도록 호스트 머신에서 Kafka 브로커 및 Zoo Cryostat를 업그레이드합니다. 설치 파일을 업데이트한 다음 모든 Kafka 브로커를 구성하고 다시 시작하여 새 브로커 프로토콜 버전을 사용합니다. 이러한 단계를 수행한 후 새 브랜드 간 프로토콜 버전을 사용하여 Kafka 브로커 간에 데이터가 전송됩니다.
Kafka 3.0.0에서 메시지 형식 버전 값은 inter.broker.protocol.version
과 일치하도록 가정되며 설정할 필요가 없습니다. 값은 사용된 Kafka 버전을 반영합니다.
사전 요구 사항
-
kafka
사용자로 Red Hat Enterprise Linux에 로그인되어 있습니다. 별도의 호스트에서 사용 중인 Kafka 및 기타 Kafka 구성 요소를 설치했습니다.
자세한 내용은 3.1절. “설치 환경”의 내용을 참조하십시오.
- 설치 파일을 다운로드했습니다.
프로세스
AMQ Streams 클러스터의 각 Kafka 브로커와 한 번에 하나씩 다음을 수행합니다.
AMQ Streams 소프트웨어 다운로드 페이지에서 AMQ Streams 아카이브를 다운로드합니다.
참고메시지가 표시되면 Red Hat 계정에 로그인합니다.
명령줄에서 임시 디렉터리를 생성하고
amq-streams-<version>-bin.zip
파일의 내용을 추출합니다.mkdir /tmp/kafka unzip amq-streams-<version>-bin.zip -d /tmp/kafka
실행 중인 경우 호스트에서 실행 중인 Zoo Cryostat 및 Kafka 브로커를 중지합니다.
/opt/kafka/bin/zookeeper-server-stop.sh /opt/kafka/bin/kafka-server-stop.sh jcmd | grep zookeeper jcmd | grep kafka
다중 노드 클러스터에서 Kafka를 실행하는 경우 4.3절. “Kafka 브로커의 정상 롤링 재시작 수행” 을 참조하십시오.
기존 설치에서
libs
및bin
디렉토리를 삭제합니다.rm -rf /opt/kafka/libs /opt/kafka/bin
임시 디렉토리에서
libs
및bin
디렉토리를 복사합니다.cp -r /tmp/kafka/kafka_<version>/libs /opt/kafka/ cp -r /tmp/kafka/kafka_<version>/bin /opt/kafka/
-
필요한 경우 새 버전의 변경 사항을 반영하도록
config
디렉터리의 구성 파일을 업데이트합니다. 임시 디렉터리를 삭제합니다.
rm -r /tmp/kafka
/opt/kafka/config/server.properties
속성 파일을 편집합니다.inter.broker.protocol.version
및log.message.format.version
속성을 현재 버전으로 설정합니다.예를 들어 Kafka 버전 3.5.0에서 3.6.0으로 업그레이드하는 경우 현재 버전은 3.5입니다.
inter.broker.protocol.version=3.5 log.message.format.version=3.5
업그레이드 중인 Kafka 버전에 대해 올바른 버전을 사용합니다(
3.4
,3.5
등). 현재 설정에서inter.broker.protocol.version
을 변경하지 않으면 브로커가 업그레이드 중에 계속 서로 통신할 수 있습니다.속성이 구성되지 않은 경우 현재 버전으로 추가합니다.
Kafka 3.0.0 이상에서 업그레이드하는 경우
inter.broker.protocol.version
만 설정하면 됩니다.업데이트된 Zoo Cryostat 및 Kafka 브로커를 다시 시작하십시오.
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Kafka 브로커 및 Zoo Cryostat는 최신 Kafka 버전에 바이너리를 사용하기 시작합니다.
멀티 노드 클러스터에서 브로커를 다시 시작하는 방법에 대한 자세한 내용은 4.3절. “Kafka 브로커의 정상 롤링 재시작 수행” 을 참조하십시오.
재시작한 Kafka 브로커가 다음과 같은 파티션 복제본에 도달했는지 확인합니다.
kafka-topics.sh
툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.다음 단계에서 새 인터브로커 프로토콜 버전을 사용하도록 Kafka 브로커를 업데이트합니다.
한 번에 하나씩 각 브로커를 업데이트합니다.
주의다음 단계를 완료한 후에는 AMQ Streams를 다운로드할 수 없습니다.
- 클라이언트를 업그레이드하기 위한 선택한 전략에 따라 모든 클라이언트 애플리케이션을 업그레이드하여 새 버전의 클라이언트 바이너리를 사용합니다.
/opt/kafka/config/server.properties
파일에서inter.broker.protocol.version
속성을3.6
으로 설정합니다.inter.broker.protocol.version=3.6
명령줄에서 수정한 Kafka 브로커를 중지합니다.
/opt/kafka/bin/kafka-server-stop.sh
Kafka가 실행 중이 아닌지 확인합니다.
jcmd | grep kafka
수정한 Kafka 브로커를 다시 시작합니다.
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Kafka가 실행 중인지 확인합니다.
jcmd | grep kafka
Kafka 3.0.0 이전 버전에서 업그레이드하는 경우
/opt/kafka/config/server.properties
파일에서log.message.format.version
속성을3.6
으로 설정합니다.log.message.format.version=3.6
명령줄에서 수정한 Kafka 브로커를 중지합니다.
/opt/kafka/bin/kafka-server-stop.sh
Kafka가 실행 중이 아닌지 확인합니다.
jcmd | grep kafka
수정한 Kafka 브로커를 다시 시작합니다.
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Kafka가 실행 중인지 확인합니다.
jcmd | grep kafka
재시작한 Kafka 브로커가 다음과 같은 파티션 복제본에 도달했는지 확인합니다.
kafka-topics.sh
툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.-
업그레이드에 사용된 경우
server.properties
파일에서 레거시log.message.format.version
구성을 제거합니다.