어떻게 zookeeper 없이 카프카를 쉽게 설치할 수 있습니까
본고에서 우리는 zookeeper를 사용하지 않는 상황에서 카프카를 설정하는 방법을 이해할 것이다.우리는 3 노드의kafka 그룹을 설정하고 테스트 테마를 만들 것입니다.우리는 카프카 제작자를 사용하여 테스트 주제를 위해 데이터를 생성하고 카프카 소비자들이 카프카 주제의 데이터를 사용할 것이다.
카프카가 왜 조키퍼를 사용하는지
Zookeeper는 카프카드 클러스터 메타데이터 정보를 저장하는 데 사용됩니다.Zookeeper는 테마 설정, 테마 구역 위치 등 정보를 저장합니다.
동물원 관리인이 없으면 카프카는 어떻게 일할 것인가
Zookeeper는 카프카의 외부 메타데이터 관리 시스템 역할을 합니다.이는 데이터 중복, 시스템 복잡성 증가, 추가 자바 프로세스 사용 등 여러 가지 문제를 일으킬 수 있다.
zookeeper가 없는 상태에서 kafka를 실행하기 위해서, kafka Raft 메타데이터 모드 (KRaft) 를 사용하여 그것을 실행할 수 있습니다.카프카에서 카프카원 데이터 정보는 하나의 구역으로 카프카 자체에 저장된다.메타데이터를 저장하는 컨트롤러 노드의 카프 중재가 있을 것입니다.메타데이터는 내부 카프카드 테마 @metadata에 저장됩니다.
이것은 카프카 2.8.0의 실험 모드에서 사용할 수 있다
현재 카프를 사용하는 것은 실험적이어서 생산에 사용해서는 안 된다
zookeeper가 없는 카프카 집단을 만들다
카프카드 다운로드
https://kafka.apache.org/downloads에서 카프카드 2.8.0 다운로드
wget https://apachemirror.wuchna.com/kafka/2.8.0/kafka_2.12-2.8.0.tgz
카프카를 발췌하다.
tar xzf kafka_2.12-2.8.0.tgz
카프카 폴더를 엽니다.모든 카프카 명령은 카프카 폴더에서 실행되어야 합니다
cd kafka_2.12-2.8.0
카프카 클러스터 구성
카프카 홈 디렉터리에 있는 config/kraft
폴더로 이동하면 server.properties
라는 파일을 볼 수 있습니다.이것은 카프카가 제공한 예시 파일로, zookeeper가 없는 상황에서 카프카를 시작하는 방법을 보여 준다
서버에서 3개의 새 파일을 만듭니다.재산이것은 우리가 3 노드 그룹을 만들 것이기 때문이다
cd config/kraft
cp server.properties server1.properties
cp server.properties server2.properties
cp server.properties server3.properties
서버 1에 있습니다.다음 속성을 수정하십시오.다른 재산은 변하지 않도록 하세요.
node.id=1
process.roles=broker,controller
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:19092
log.dirs=/tmp/server1/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
이러한 속성의 역할에 대해 설명하겠습니다.
노드id: 집단 중의 노드 id로 사용할 것입니다.이것은 우리가 어느 매니저인지 확인하는 데 도움이 될 것이다.이것은 또한 우리가 이것이 어느 카프 컨트롤러 노드인지 확인하는 데 도움을 줄 것이다.
과정 1역할: 노드는 에이전트나 컨트롤러를 충당할 수도 있고 둘을 동시에 충당할 수도 있다.여기서 우리는 이 노드가 카프카 매니저일 수도 있고 카프 컨트롤러 노드일 수도 있다고 지적했다.
묻다매니저님.청중.이름: 여기 프록시 탐지기 이름이 순수한 텍스트로 설정되어 있습니다
제어기.청중.이름: 이 컨트롤러 탐지기 이름은 controller로 설정됩니다
탐지기: 에이전트는 9092, 카프 컨트롤러는 19092로
일지.dirs: 이것은 카프카가 데이터를 저장하는 로그 디렉터리입니다
청중.보안합의지도: 연결 안전 상세 정보 추가
제어기.법정 인원수.투표자: 이것은 모든 사용 가능한 카프 컨트롤러를 표시하는 데 사용됩니다.포트 19092, 19093, 19094에서 3개의 카프 컨트롤러 노드가 실행될 예정입니다.
서버 2.속성다음 속성을 수정합니다.다른 재산은 변하지 않도록 하세요.
node.id=2
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9093,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server2/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
서버 2에서 프록시 포트는 9093, 디렉터 포트는 19093입니다.일지도 있고.dirs는 다르다
서버 3.속성다음 속성을 수정합니다.다른 재산은 변하지 않도록 하세요.
node.id=3
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9094,CONTROLLER://:19094
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server3/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
서버 3에서 프록시 포트는 9094, 컨트롤러 포트는 19094입니다.일지도 있고.dirs는 다르다
전체 서버 등록 정보 파일은 Git repo에서 사용할 수 있습니다.
Kafka 클러스터 id 생성 및 로그 디렉토리 설정
우선, 서버를 시작하기 전에kafka 집단 id를 만들어야 합니다.다음 명령을 사용하여 작업을 완료할 수 있습니다.
./bin/kafka-storage.sh random-uuid
상기 문장을 실행한 후 나타나는 uid를 기록합니다.나로서는 다음과 같은 uid를 얻었다
./bin/kafka-storage.sh random-uuid
9dJzdGvfTPaCY4e8klXaDQ
다음에 우리는 모든 저장 디렉터리를 포맷해야 한다.이것은 기본적으로 우리가 로그에 넣은 목록이다.dirs 속성
이것은 아래 명령을 통해 완성할 수 있다
./bin/kafka-storage.sh format -t <uuid> -c <server_config_location>
이전 단계에서 얻은 uid로 바꾸기 <uuid>
.서버 속성 파일로 바꾸기<server_config_location>
나의 예에서, 나는 아래의 명령을 실행할 것이다
서버 1의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
서버 2의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
서버 3의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
이것은 이 세 명령을 실행할 때 얻은 결과이다
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
Formatting /tmp/server1/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
Formatting /tmp/server2/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
Formatting /tmp/server3/kraft-combined-logs
카프카 서버 시작
다음 명령을 사용하여 데몬 모드에서 kafka 서버를 시작할 수 있습니다.
우선 쌓기 속성 설정
export KAFKA_HEAP_OPTS="-Xmx200M –Xms100M"
여기에서 우리는 로컬 기기에서 모든 서버를 운행하기 때문에 매우 작은 200M을 제시했다.만약 더 큰 서버가 있다면, 1GB 이상을 쌓아 줄 수 있다.
서버 1을 시작합니다.
./bin/kafka-server-start.sh -daemon ./config/kraft/server1.properties
서버 2를 시작합니다.
./bin/kafka-server-start.sh -daemon ./config/kraft/server2.properties
서버 부팅 3:
./bin/kafka-server-start.sh -daemon ./config/kraft/server3.properties
카프카 테마 만들기
이 그룹에서 테마 카프 테스트를 만듭니다
다음 명령을 사용하여 주제를 만들 수 있습니다.
./bin/kafka-topics.sh --create --topic kraft-test --partitions 3 --replication-factor 3 --bootstrap-server localhost:9092
세 개의 노드가 있기 때문에 세 개의 구역과 세 개의 던전을 포함하는 테마를 만들고 있습니다.
다음 명령을 사용하여 클러스터의 주제를 나열할 수 있습니다.
bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
상술한 명령을 실행하면 다음과 같은 결과를 얻을 수 있다
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
kraft-test
다음 명령을 사용하여 클러스터의 주제를 설명할 수 있습니다.
bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
상술한 명령을 실행하면 다음과 같은 결과를 얻을 수 있다
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
Topic: kraft-test TopicId: vZKswHHlQk2mEOw0yzAGAA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: kraft-test Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: kraft-test Partition: 1 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
Topic: kraft-test Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
메타데이터 케이스로 카프카 메타데이터 탐색
zookeeper cli와 유사하게, kafka는 @metadata 내부 테마의 데이터를 읽을 수 있도록 메타데이터 셸을 제공합니다.
다음 명령을 사용하여 셸을 엽니다
./bin/kafka-metadata-shell.sh --snapshot /tmp/server1/kraft-combined-logs/\@metadata-0/00000000000000000000.log
여기 구조가 저희가 조키퍼에서 봤던 거랑 되게 비슷해요.
입력할 수 있는 매니저를 순서대로 나열합니다ls brokers/
.
>> ls brokers/
1 2 3
입력할 수 있는 테마를 표시하기 위해서 ls topics/
>> ls topics/
kraft-test
주제 메타데이터를 보려면 cat topics/kraft-test/0/data
를 입력합니다.
>> cat topics/kraft-test/0/data
{
"partitionId" : 0,
"topicId" : "vZKswHHlQk2mEOw0yzAGAA",
"replicas" : [ 3, 2, 1 ],
"isr" : [ 3, 2, 1 ],
"removingReplicas" : null,
"addingReplicas" : null,
"leader" : 3,
"leaderEpoch" : 0,
"partitionEpoch" : 0
}
컨트롤러 지시선 노드를 찾으려면 cat metadataQuorum/leader
를 입력합니다.
>> cat metadataQuorum/leader
MetaLogLeader(nodeId=2, epoch=4)
메타데이터 셸을 종료하려면 exit
를 입력합니다.
카프카 데이터 제작 및 사용
다음 명령을 사용하여 터미널에서 카프카 제작자를 시작합니다
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
다른 단말기에서 다음 명령을 사용하여 카프카 소비 프로그램을 시작합니다
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
Producer 단말기에서 다음과 같은 메시지를 보냅니다
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
>message 1
>message 2
>message 3
>hello
>bye
소비자 단말기에서 귀하는 아래와 같은 소식을 보실 수 있습니다
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
message 1
message 2
message 3
hello
bye
축하하다.😊
너는 이제 zookeeper가 없는 상황에서 카프카드를 설치하는 법을 배웠다.이것은 여전히 실험 특성이므로 생산에 사용해서는 안 된다.
카프카와 아파치피노를 이용한 실시간 분석에 관심이 있다면 아래 그림을 클릭하여 제가 Udemy에서 배운 과정을 보십시오
도구책
https://kafka.apache.org/
https://cwiki.apache.org/confluence/display/KAFKA/KIP-500
언제든지 저에게 연락하거나 따라오세요.
Reference
이 문제에 관하여(어떻게 zookeeper 없이 카프카를 쉽게 설치할 수 있습니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/adityasridhar/how-to-easily-install-kafka-without-zookeeper-1j2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Zookeeper는 카프카의 외부 메타데이터 관리 시스템 역할을 합니다.이는 데이터 중복, 시스템 복잡성 증가, 추가 자바 프로세스 사용 등 여러 가지 문제를 일으킬 수 있다.
zookeeper가 없는 상태에서 kafka를 실행하기 위해서, kafka Raft 메타데이터 모드 (KRaft) 를 사용하여 그것을 실행할 수 있습니다.카프카에서 카프카원 데이터 정보는 하나의 구역으로 카프카 자체에 저장된다.메타데이터를 저장하는 컨트롤러 노드의 카프 중재가 있을 것입니다.메타데이터는 내부 카프카드 테마 @metadata에 저장됩니다.
이것은 카프카 2.8.0의 실험 모드에서 사용할 수 있다
현재 카프를 사용하는 것은 실험적이어서 생산에 사용해서는 안 된다
zookeeper가 없는 카프카 집단을 만들다
카프카드 다운로드
https://kafka.apache.org/downloads에서 카프카드 2.8.0 다운로드
wget https://apachemirror.wuchna.com/kafka/2.8.0/kafka_2.12-2.8.0.tgz
카프카를 발췌하다.
tar xzf kafka_2.12-2.8.0.tgz
카프카 폴더를 엽니다.모든 카프카 명령은 카프카 폴더에서 실행되어야 합니다
cd kafka_2.12-2.8.0
카프카 클러스터 구성
카프카 홈 디렉터리에 있는 config/kraft
폴더로 이동하면 server.properties
라는 파일을 볼 수 있습니다.이것은 카프카가 제공한 예시 파일로, zookeeper가 없는 상황에서 카프카를 시작하는 방법을 보여 준다
서버에서 3개의 새 파일을 만듭니다.재산이것은 우리가 3 노드 그룹을 만들 것이기 때문이다
cd config/kraft
cp server.properties server1.properties
cp server.properties server2.properties
cp server.properties server3.properties
서버 1에 있습니다.다음 속성을 수정하십시오.다른 재산은 변하지 않도록 하세요.
node.id=1
process.roles=broker,controller
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:19092
log.dirs=/tmp/server1/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
이러한 속성의 역할에 대해 설명하겠습니다.
노드id: 집단 중의 노드 id로 사용할 것입니다.이것은 우리가 어느 매니저인지 확인하는 데 도움이 될 것이다.이것은 또한 우리가 이것이 어느 카프 컨트롤러 노드인지 확인하는 데 도움을 줄 것이다.
과정 1역할: 노드는 에이전트나 컨트롤러를 충당할 수도 있고 둘을 동시에 충당할 수도 있다.여기서 우리는 이 노드가 카프카 매니저일 수도 있고 카프 컨트롤러 노드일 수도 있다고 지적했다.
묻다매니저님.청중.이름: 여기 프록시 탐지기 이름이 순수한 텍스트로 설정되어 있습니다
제어기.청중.이름: 이 컨트롤러 탐지기 이름은 controller로 설정됩니다
탐지기: 에이전트는 9092, 카프 컨트롤러는 19092로
일지.dirs: 이것은 카프카가 데이터를 저장하는 로그 디렉터리입니다
청중.보안합의지도: 연결 안전 상세 정보 추가
제어기.법정 인원수.투표자: 이것은 모든 사용 가능한 카프 컨트롤러를 표시하는 데 사용됩니다.포트 19092, 19093, 19094에서 3개의 카프 컨트롤러 노드가 실행될 예정입니다.
서버 2.속성다음 속성을 수정합니다.다른 재산은 변하지 않도록 하세요.
node.id=2
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9093,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server2/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
서버 2에서 프록시 포트는 9093, 디렉터 포트는 19093입니다.일지도 있고.dirs는 다르다
서버 3.속성다음 속성을 수정합니다.다른 재산은 변하지 않도록 하세요.
node.id=3
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9094,CONTROLLER://:19094
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server3/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
서버 3에서 프록시 포트는 9094, 컨트롤러 포트는 19094입니다.일지도 있고.dirs는 다르다
전체 서버 등록 정보 파일은 Git repo에서 사용할 수 있습니다.
Kafka 클러스터 id 생성 및 로그 디렉토리 설정
우선, 서버를 시작하기 전에kafka 집단 id를 만들어야 합니다.다음 명령을 사용하여 작업을 완료할 수 있습니다.
./bin/kafka-storage.sh random-uuid
상기 문장을 실행한 후 나타나는 uid를 기록합니다.나로서는 다음과 같은 uid를 얻었다
./bin/kafka-storage.sh random-uuid
9dJzdGvfTPaCY4e8klXaDQ
다음에 우리는 모든 저장 디렉터리를 포맷해야 한다.이것은 기본적으로 우리가 로그에 넣은 목록이다.dirs 속성
이것은 아래 명령을 통해 완성할 수 있다
./bin/kafka-storage.sh format -t <uuid> -c <server_config_location>
이전 단계에서 얻은 uid로 바꾸기 <uuid>
.서버 속성 파일로 바꾸기<server_config_location>
나의 예에서, 나는 아래의 명령을 실행할 것이다
서버 1의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
서버 2의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
서버 3의 경우:
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
이것은 이 세 명령을 실행할 때 얻은 결과이다
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
Formatting /tmp/server1/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
Formatting /tmp/server2/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
Formatting /tmp/server3/kraft-combined-logs
카프카 서버 시작
다음 명령을 사용하여 데몬 모드에서 kafka 서버를 시작할 수 있습니다.
우선 쌓기 속성 설정
export KAFKA_HEAP_OPTS="-Xmx200M –Xms100M"
여기에서 우리는 로컬 기기에서 모든 서버를 운행하기 때문에 매우 작은 200M을 제시했다.만약 더 큰 서버가 있다면, 1GB 이상을 쌓아 줄 수 있다.
서버 1을 시작합니다.
./bin/kafka-server-start.sh -daemon ./config/kraft/server1.properties
서버 2를 시작합니다.
./bin/kafka-server-start.sh -daemon ./config/kraft/server2.properties
서버 부팅 3:
./bin/kafka-server-start.sh -daemon ./config/kraft/server3.properties
카프카 테마 만들기
이 그룹에서 테마 카프 테스트를 만듭니다
다음 명령을 사용하여 주제를 만들 수 있습니다.
./bin/kafka-topics.sh --create --topic kraft-test --partitions 3 --replication-factor 3 --bootstrap-server localhost:9092
세 개의 노드가 있기 때문에 세 개의 구역과 세 개의 던전을 포함하는 테마를 만들고 있습니다.
다음 명령을 사용하여 클러스터의 주제를 나열할 수 있습니다.
bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
상술한 명령을 실행하면 다음과 같은 결과를 얻을 수 있다
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
kraft-test
다음 명령을 사용하여 클러스터의 주제를 설명할 수 있습니다.
bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
상술한 명령을 실행하면 다음과 같은 결과를 얻을 수 있다
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
Topic: kraft-test TopicId: vZKswHHlQk2mEOw0yzAGAA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: kraft-test Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: kraft-test Partition: 1 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
Topic: kraft-test Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
메타데이터 케이스로 카프카 메타데이터 탐색
zookeeper cli와 유사하게, kafka는 @metadata 내부 테마의 데이터를 읽을 수 있도록 메타데이터 셸을 제공합니다.
다음 명령을 사용하여 셸을 엽니다
./bin/kafka-metadata-shell.sh --snapshot /tmp/server1/kraft-combined-logs/\@metadata-0/00000000000000000000.log
여기 구조가 저희가 조키퍼에서 봤던 거랑 되게 비슷해요.
입력할 수 있는 매니저를 순서대로 나열합니다ls brokers/
.
>> ls brokers/
1 2 3
입력할 수 있는 테마를 표시하기 위해서 ls topics/
>> ls topics/
kraft-test
주제 메타데이터를 보려면 cat topics/kraft-test/0/data
를 입력합니다.
>> cat topics/kraft-test/0/data
{
"partitionId" : 0,
"topicId" : "vZKswHHlQk2mEOw0yzAGAA",
"replicas" : [ 3, 2, 1 ],
"isr" : [ 3, 2, 1 ],
"removingReplicas" : null,
"addingReplicas" : null,
"leader" : 3,
"leaderEpoch" : 0,
"partitionEpoch" : 0
}
컨트롤러 지시선 노드를 찾으려면 cat metadataQuorum/leader
를 입력합니다.
>> cat metadataQuorum/leader
MetaLogLeader(nodeId=2, epoch=4)
메타데이터 셸을 종료하려면 exit
를 입력합니다.
카프카 데이터 제작 및 사용
다음 명령을 사용하여 터미널에서 카프카 제작자를 시작합니다
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
다른 단말기에서 다음 명령을 사용하여 카프카 소비 프로그램을 시작합니다
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
Producer 단말기에서 다음과 같은 메시지를 보냅니다
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
>message 1
>message 2
>message 3
>hello
>bye
소비자 단말기에서 귀하는 아래와 같은 소식을 보실 수 있습니다
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
message 1
message 2
message 3
hello
bye
축하하다.😊
너는 이제 zookeeper가 없는 상황에서 카프카드를 설치하는 법을 배웠다.이것은 여전히 실험 특성이므로 생산에 사용해서는 안 된다.
카프카와 아파치피노를 이용한 실시간 분석에 관심이 있다면 아래 그림을 클릭하여 제가 Udemy에서 배운 과정을 보십시오
도구책
https://kafka.apache.org/
https://cwiki.apache.org/confluence/display/KAFKA/KIP-500
언제든지 저에게 연락하거나 따라오세요.
Reference
이 문제에 관하여(어떻게 zookeeper 없이 카프카를 쉽게 설치할 수 있습니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/adityasridhar/how-to-easily-install-kafka-without-zookeeper-1j2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
wget https://apachemirror.wuchna.com/kafka/2.8.0/kafka_2.12-2.8.0.tgz
tar xzf kafka_2.12-2.8.0.tgz
cd kafka_2.12-2.8.0
cd config/kraft
cp server.properties server1.properties
cp server.properties server2.properties
cp server.properties server3.properties
node.id=1
process.roles=broker,controller
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:19092
log.dirs=/tmp/server1/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
node.id=2
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9093,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server2/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
node.id=3
process.roles=broker,controller
controller.quorum.voters=1@localhost:19092,2@localhost:19093,3@localhost:19094
listeners=PLAINTEXT://:9094,CONTROLLER://:19094
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
log.dirs=/tmp/server3/kraft-combined-logs
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
./bin/kafka-storage.sh random-uuid
./bin/kafka-storage.sh random-uuid
9dJzdGvfTPaCY4e8klXaDQ
./bin/kafka-storage.sh format -t <uuid> -c <server_config_location>
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server1.properties
Formatting /tmp/server1/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server2.properties
Formatting /tmp/server2/kraft-combined-logs
$ ./bin/kafka-storage.sh format -t 9dJzdGvfTPaCY4e8klXaDQ -c ./config/kraft/server3.properties
Formatting /tmp/server3/kraft-combined-logs
export KAFKA_HEAP_OPTS="-Xmx200M –Xms100M"
./bin/kafka-server-start.sh -daemon ./config/kraft/server1.properties
./bin/kafka-server-start.sh -daemon ./config/kraft/server2.properties
./bin/kafka-server-start.sh -daemon ./config/kraft/server3.properties
./bin/kafka-topics.sh --create --topic kraft-test --partitions 3 --replication-factor 3 --bootstrap-server localhost:9092
bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --list
kraft-test
bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
$ bin/kafka-topics.sh --bootstrap-server localhost:9093 --describe --topic kraft-test
Topic: kraft-test TopicId: vZKswHHlQk2mEOw0yzAGAA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: kraft-test Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: kraft-test Partition: 1 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
Topic: kraft-test Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
./bin/kafka-metadata-shell.sh --snapshot /tmp/server1/kraft-combined-logs/\@metadata-0/00000000000000000000.log
>> ls brokers/
1 2 3
>> ls topics/
kraft-test
>> cat topics/kraft-test/0/data
{
"partitionId" : 0,
"topicId" : "vZKswHHlQk2mEOw0yzAGAA",
"replicas" : [ 3, 2, 1 ],
"isr" : [ 3, 2, 1 ],
"removingReplicas" : null,
"addingReplicas" : null,
"leader" : 3,
"leaderEpoch" : 0,
"partitionEpoch" : 0
}
>> cat metadataQuorum/leader
MetaLogLeader(nodeId=2, epoch=4)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kraft-test
>message 1
>message 2
>message 3
>hello
>bye
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kraft-test
message 1
message 2
message 3
hello
bye
너는 이제 zookeeper가 없는 상황에서 카프카드를 설치하는 법을 배웠다.이것은 여전히 실험 특성이므로 생산에 사용해서는 안 된다.
카프카와 아파치피노를 이용한 실시간 분석에 관심이 있다면 아래 그림을 클릭하여 제가 Udemy에서 배운 과정을 보십시오
도구책
https://kafka.apache.org/
https://cwiki.apache.org/confluence/display/KAFKA/KIP-500
언제든지 저에게 연락하거나 따라오세요.
Reference
이 문제에 관하여(어떻게 zookeeper 없이 카프카를 쉽게 설치할 수 있습니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/adityasridhar/how-to-easily-install-kafka-without-zookeeper-1j2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(어떻게 zookeeper 없이 카프카를 쉽게 설치할 수 있습니까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/adityasridhar/how-to-easily-install-kafka-without-zookeeper-1j2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)