wget 명령어로 tgz 파일을 받아온다.
wget http://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
[karim@Kafka_single karim]$ wget http://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
--2021-10-26 17:48:37-- http://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
Resolving archive.apache.org (archive.apache.org)... 138.201.131.134, 2a01:4f8:172:2ec5::2
Connecting to archive.apache.org (archive.apache.org)|138.201.131.134|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 65537909 (63M) [application/x-gzip]
Saving to: ‘kafka_2.13-2.6.0.tgz’
100%[==========================>] 65,537,909 5.98MB/s in 10s
2021-10-26 17:48:48 (5.99 MB/s) - ‘kafka_2.13-2.6.0.tgz’ saved [65537909/65537909]
압축을 푼다
tar -zxvf kafka_2.13-2.6.0.tgz
[karim@Kafka_single karim]$ tar -zxvf kafka_2.13-2.6.0.tgz
kafka_2.13-2.6.0/
kafka_2.13-2.6.0/LICENSE
.
.
.
kafka_2.13-2.6.0/libs/kafka-streams-test-utils-2.6.0.jar
kafka_2.13-2.6.0/libs/kafka-streams-examples-2.6.0.jar
vi config/zookeeper.properties
# 스냅샵 데이터를 저장할 경로 설정
dataDir=/data/zookeeper
# 클라이언트가 연결할 port 번호 설정
clientPort=2181
# 클라이언트에서 동시 접속하는 개수 설정 (default : 60 / unlimited : 0)
maxClientCnxns=0
vi config/server.properties
# 브로커 넘버 설정
broker.id=1
# 브로커가 사용하는 호스트와 포트 지정
listeners=PLAINTEXT://:9092
# producer, consumer가 해당 kafka로 접근할 수 있게 광고할 호스트와 포트를 설정
advertised.listeners=PLAINTEXT://localhost:9092
# 서버가 네트워크에서 요청을 받고 응답을 보내는데 사용하는 스레드 수 설정 (default : 3)
num.network.threads=3
# I/O 생길 때 생성되는 스레드 수 설정 (default : 8)
num.io.threads=8
# 소켓 서버에서 송신 하는 버퍼 사이즈
socket.send.buffer.bytes=102400
# 소켓 서버에서 수신 하는 버퍼 사이즈
socket.receive.buffer.bytes=102400
# 서버가 받을 수 있는 최대 요청 사이즈 (oom에 대한 보호)
socket.request.max.bytes=1048576000
# 로그 세그먼트 및 오프셋 데이터가 저장되어있는 경로 설정
log.dirs=/data/kafka/data
# topic 당 파티션 수 설정 (single 설정 이므로 default : 1)
num.partitions=1
# 시작 시 로그 복구, 종료 시 flush에 사용할 데이터 dir 당 스레드 수
num.recovery.threads.per.data.dir=1
# topic에 설정된 replication 수가 지정한 값보다 크면 새로운 토픽을 생성하고 작으면 broker 수와 같게 한다. (single 설정 이므로 default : 1)
offsets.topic.replication.factor=1
# 트랜잭션에 대한 레플리카 수 (single 설정 이므로 default : 1)
transaction.state.log.replication.factor=1
# 트랜잭션에 대한 재 정의 된 min.insync.replicas 구성 설정
transaction.state.log.min.isr=1
# 세그먼트 파일의 삭제 주기
log.retention.hours=24
# 세그먼트 파일의 사이즈
# 세그먼트 : topic 별로 수집한 데이터를 보관하는 파일
log.segment.bytes=1073741824
# 세그먼트 파일의 삭제 여부를 체크하는 주기 설정
log.retention.check.interval.ms=300000
# zookeeper 접속 정보 설정
zookeeper.connect=127.0.0.1:2181
# zookeeper 접속 시도 제한 시간
zookeeper.connection.timeout.ms=18000
# 코디네이터가 파티션 리밸런싱을 처음 수행할 때나
#새로운 consumer 들이 추가 될 때 group에 참여할때 까지 대기하는 시간
group.initial.rebalance.delay.ms=3000
# 토픽을 삭제할 수 있게 설정
delete.topic.enable=true
zookeeper가 kafka의 메타 데이터를 관리하기 때문에 kafka 보다 먼저
실행해야 한다.!
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
./zookeeper-server.stop.sh
./kafka-server-start.sh -daemon ../config/server.properties
./kafka-server-stop.sh
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic karim-topic
[karim@Kafka_single bin]$ ./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic karim-topic
Created topic karim-topic.
[karim@Kafka_single bin]$ ./kafka-topics.sh --list --bootstrap-server localhost:9092
__consumer_offsets
karim-topic
./kafka-console-producer.sh --broker-list localhost:9092 --topic karim-topic
[karim@Kafka_single bin]$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic karim-topic
>karim velog good
./kafka-console-consumer.sh --bootstp-server localhost:9092 --topic karim-topic
[karim@Kafka_single bin]ka$ ./kafka-console-consumer.sh --bootstp-server localhost:9092 --topic karim-topic
karim velog good
https://kafka.apache.org/documentation/
https://heodolf.tistory.com/11