4.2. KRaft 모드에서 Kafka 클러스터 실행
KRaft 모드에서 Kafka를 구성하고 실행합니다. 단일 노드 또는 다중 노드 Kafka 클러스터를 사용하는 경우 KRaft 모드에서 Kafka를 실행할 수 있습니다. 안정성과 가용성을 위해 최소 3개의 브로커 및 컨트롤러 노드를 실행합니다.
브로커의 역할을 설정하여 컨트롤러도 될 수 있습니다. 구성 속성 파일을 사용하여 역할 설정을 포함하여 브로커 구성을 적용합니다. 브로커 구성은 역할에 따라 다릅니다. Kraft는 세 가지 브로커 구성 속성 파일을 제공합니다.
-
/opt/kafka/config/kraft/broker.properties에는 브로커 역할에 대한 예제 구성이 있습니다. -
/opt/kafka/config/kraft/controller.properties에는 컨트롤러 역할에 대한 예제 구성이 있습니다. -
/opt/kafka/config/kraft/server.properties에는 결합된 역할에 대한 예제 구성이 있습니다.
브로커 구성을 이러한 예제 속성 파일을 기반으로 할 수 있습니다. 이 절차에서 예제 server.properties 구성이 사용됩니다.
사전 요구 사항
- AMQ Streams는 Kafka 브로커로 사용할 모든 호스트에 설치됩니다.
프로세스
kafka-storage 툴을 사용하여 Kafka 클러스터의 ID를 생성합니다./opt/kafka/bin/kafka-storage.sh random-uuid명령에서 ID를 반환합니다. KRaft 모드에서는 클러스터 ID가 필요합니다.
클러스터의 각 브로커에 대한 구성 속성 파일을 생성합니다.
Kafka와 함께 제공된 예제의 파일을 기반으로 할 수 있습니다.
역할을
broker, 'controller또는브로커, 컨트롤러로지정예를 들어
process.roles=broker, controller.0부터 시작하여 클러스터의 각 노드에 대해 고유한node.id를 지정합니다.예:
node.id=1.<
node_id> @ <hostname:port> 형식으로.controller.quorum.voECDSA 목록을 지정합니다예를 들어
controller.quorum.vohaproxy=1@localhost:9093.
Kafka 클러스터의 각 노드에 대한 로그 디렉터리를 설정합니다.
/opt/kafka/bin/kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties반환:
Formatting /tmp/kraft-combined-logs< ;uuid& gt;를 생성한 클러스터 ID로 바꿉니다. 클러스터의 각 노드에 동일한 ID를 사용합니다.
브로커용으로 생성한 속성 파일을 사용하여 브로커 구성을 적용합니다.
server.properties구성 파일에 지정된 기본 로그 디렉터리 위치는/tmp/kraft-combined-logs입니다. 쉼표로 구분된 목록을 추가하여 여러 로그 디렉터리를 설정할 수 있습니다.각 Kafka 브로커를 시작합니다.
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.propertiesKafka가 실행 중인지 확인합니다.
jcmd | grep kafka반환:
number kafka.Kafka /opt/kafka/config/kraft/server.properties
이제 주제를 생성하고 브로커로부터 메시지를 보내고 받을 수 있습니다.
메시지를 전달하는 브로커의 경우 데이터 지속성을 위해 클러스터의 브로커 간에 주제 복제를 사용할 수 있습니다. 복제 요인이 3개 이상이고 최소 개수의 in-sync 복제본이 복제 요소보다 1로 설정되도록 주제를 구성합니다. 자세한 내용은 6.7절. “주제 생성”의 내용을 참조하십시오.