17.3. Kafka 브로커 및 Zoo Cryostat 업그레이드
다음 절차에서는 최신 버전의 AMQ Streams를 사용하도록 호스트 머신에서 Kafka 브로커 및 Zoo Cryostat를 업그레이드하는 방법을 설명합니다.
파일을 업데이트한 다음, 모든 Kafka 브로커를 구성하고 다시 시작하여 새 브랜드 간 프로토콜 버전을 사용합니다. 이러한 단계를 수행한 후 새 브랜드 간 프로토콜 버전을 사용하여 Kafka 브로커 간에 데이터가 전송됩니다.
Kafka 3.0.0에서 메시지 형식 버전 값은 inter.broker.protocol.version
과 일치하도록 가정되며 설정할 필요가 없습니다. 값은 사용된 Kafka 버전을 반영합니다.
수신된 메시지는 이전 메시지 형식 버전의 메시지 로그에 계속 추가됩니다.
사전 요구 사항
-
kafka
사용자로 Red Hat Enterprise Linux에 로그인되어 있습니다.
프로세스
AMQ Streams 클러스터의 각 Kafka 브로커와 한 번에 하나씩 다음을 수행합니다.
AMQ Streams 소프트웨어 다운로드 페이지에서 AMQ Streams 아카이브를 다운로드합니다.
참고메시지가 표시되면 Red Hat 계정에 로그인합니다.
명령줄에서 임시 디렉터리를 생성하고
amq-streams-x.y.z-bin.zip
파일의 내용을 추출합니다.mkdir /tmp/kafka unzip amq-streams-x.y.z-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
기존 설치에서
libs
및bin
디렉토리를 삭제합니다.rm -rf /opt/kafka/libs /opt/kafka/bin
임시 디렉토리에서
libs
및bin
디렉토리를 복사합니다.cp -r /tmp/kafka/kafka_y.y-x.x.x/libs /opt/kafka/ cp -r /tmp/kafka/kafka_y.y-x.x.x/bin /opt/kafka/
임시 디렉터리를 삭제합니다.
rm -r /tmp/kafka
/opt/kafka/config/server.properties
속성 파일을 편집합니다.inter.broker.protocol.version
및log.message.format.version
속성을 현재 버전으로 설정합니다.예를 들어 Kafka 버전 3.1.0에서 3.2.3으로 업그레이드하는 경우 현재 버전은 3.1입니다.
inter.broker.protocol.version=3.1 log.message.format.version=3.1
업그레이드할 Kafka 버전에 올바른 버전을 사용합니다(
3.0
,3.1
등). 현재 설정에서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 브로커 및 Zookeeper는 최신 Kafka 버전에 바이너리를 사용하기 시작합니다.
멀티 노드 클러스터에서 브로커를 다시 시작하는 방법에 대한 자세한 내용은 3.3절. “Kafka 브로커의 정상 롤링 재시작 수행” 을 참조하십시오.
재시작한 Kafka 브로커가 다음과 같은 파티션 복제본에 도달했는지 확인합니다.
kafka-topics.sh
툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.다음 단계에서 새 인터브로커 프로토콜 버전을 사용하도록 Kafka 브로커를 업데이트합니다.
한 번에 하나씩 각 브로커를 업데이트합니다.
주의다음 단계를 완료한 후에는 AMQ Streams를 다운로드할 수 없습니다.
/opt/kafka/config/server.properties
속성 파일에서inter.broker.protocol.version
속성을3.2
로 설정합니다.inter.broker.protocol.version=3.2
명령줄에서 수정한 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.2
로 설정합니다.log.message.format.version=3.2
명령줄에서 수정한 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
툴을 사용하여 브로커에 포함된 모든 복제본이 동기화되었는지 확인합니다. 지침은 항목 목록 및 설명을 참조하십시오.