[Kafka] Server 설정하기
by youngjun._.
실습 환경
- 💡 Java10 (Java 8이상 필수)
- 💡 Windows 10
- 💡 Git Bash
- 💡 Kafka 2.6.0
Kafka의 개념과 도입 이유는 지난 포스팅 에서 다루었고, 바로 이전 포스팅에서 zookeeper-server를 실행하기 위해 zookeeper.properties를 작성하는 방법을 알아보았다.
이번 포스팅에서는 kafka-server를 실행하기 위한 server.properties 코드를 분석해보자.
1. server.properties 코드 분석
이전에 살펴본 것 처럼 kafka를 실행하려면 kafka-server-start.bat 파일에 인자 값으로 server.properties 속성을 주어야했다.
- kafka-server-start.bat
- 윈도우 OS에서 kafka 서버 실행 파일
- server.properties
- Kafka 관련 설정 파일
설정 파일 내부를 간단히 살펴보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# config/server.properties
############################# Server Basics #############################
# Broker의 ID로 Cluster내 Broker를 구분하기 위해 사용(Unique 값)
broker.id=0
############################# Socket Server Settings #############################
# Broker가 사용하는 호스트와 포트를 지정, 형식은 PLAINTEXT://your.host.name:port 을 사용
listeners=PLAINTEXT://:9092
# Producer와 Consumer가 접근할 호스트와 포트를 지정, 기본값은 listeners를 사용
advertised.listeners=PLAINTEXT://localhost:9092
# 네트워크 요청을 처리하는 Thread의 개수, 기본값 3
num.network.threads=3
# I/O가 생길때 마다 생성되는 Thread의 개수, 기본값 8
num.io.threads=8
# socket 서버가 사용하는 송수신 버퍼 (SO_SNDBUF, SO_RCVBUF) 사이즈, 기본값 102400
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
# 서버가 받을 수 있는 최대 요청 사이즈이며, 서버 메모리가 고갈 되는 것 방지
# JAVA의 Heap 보다 작게 설정해야 함, 기본값 104857600
socket.request.max.bytes=104857600
############################# Log Basics #############################
# 로그 파일을 저장할 디렉터리의 쉼표로 구분할 수 있음
log.dirs=C:/dev/kafka_2.13-2.6.0/logs
# 토픽당 파티션의 수를 의미,
# 입력한 수만큼 병렬처리 가능, 데이터 파일도 그만큼 늘어남
num.partitions=1
# 시작 시 log 복구 및 종료 시 flushing에 사용할 데이터 directory당 Thread 개수
# 이 값은 RAID 배열에 데이터 directory에 대해 증가하도록 권장 됨
num.recovery.threads.per.data.dir=1
############################# Internal Topic Settings #############################
# 내부 Topic인 "_consumer_offsets", "_transaction_state"에 대한 replication factor
# 개발환경 : 1, 운영할 경우 가용성 보장을 위해 1 이상 권장(3 정도)
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
############################# Log Retention Policy #############################
# 세그먼트 파일의 삭제 주기, 기본값 hours, 168시간(7일)
# 옵션 [ bytes, ms, minutes, hours ]
log.retention.hours=168
# 토픽별로 수집한 데이터를 보관하는 파일
# 세그먼트 파일의 최대 크기, 기본값 1GB
# 세그먼트 파일의 용량이 차면 새로운 파일을 생성
log.segment.bytes=1073741824
# 세그먼트 파일의 삭제 여부를 체크하는 주기, 기본값 5분(보존 정책)
log.retention.check.interval.ms=300000
############################# Zookeeper #############################
# 주키퍼의 접속 정보
# 쉼표(,)로 많은 연결 서버 포트 설정 가능
# 모든 kafka znode의 Root directory
zookeeper.connect=localhost:2181
# 주키퍼 접속 시도 제한시간(time out)
zookeeper.connection.timeout.ms=18000
############################# Group Coordinator Settings #############################
# GroupCoordinator 설정 - 컨슈머 rebalance를 지연시키는 시간
# 개발환경 : 테스트 편리를 위해 0으로 정의
# 운영환경 : 3초의 기본값을 설정하는게 좋음
group.initial.rebalance.delay.ms=0
|
cs |
더 필요한 설정은 공식문서를 확인하고 추가하면 될 것 같다!
2. Kafka 실행
zookeeper를 실행한 이후에 새로운 터미널을 열어서 Kafka를 실행해주면 변경한 설정들이 적용되고 정상적으로 실행된다.
1
2
|
# yj_park@yjpark MINGW64 /c/dev/kafka_2.13-2.6.0
$ bin/windows/kafka-server-start.bat config/server.properties
|
cs |
실행결과
1
2
3
4
5
6
7
8
9
10
11
|
[2020-11-23 13:46:51,229] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2020-11-23 13:46:51,618] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util)
[2020-11-23 13:46:51,699] INFO starting (kafka.server.KafkaServer)
[2020-11-23 13:46:51,700] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)
[2020-11-23 13:46:51,718] INFO [ZooKeeperClient Kafka server] Initializing a new session to localhost:2181. (kafka.zookeeper.ZooKeeperClient)
# ... 생략
[2020-11-23 13:46:53,517] INFO [SocketServer brokerId=0] Started socket server acceptors and processors (kafka.network.SocketServer)
[2020-11-23 13:46:53,527] INFO Kafka version: 2.6.0 (org.apache.kafka.common.utils.AppInfoParser)
[2020-11-23 13:46:53,527] INFO Kafka commitId: 62abe01bee039651 (org.apache.kafka.common.utils.AppInfoParser)
[2020-11-23 13:46:53,527] INFO Kafka startTimeMs: 1606106813517 (org.apache.kafka.common.utils.AppInfoParser)
[2020-11-23 13:46:53,529] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
|
cs |
이제 Kafka 기본 환경이 설정됐다!
Reference
'BigData > Kafka' 카테고리의 다른 글
로컬에 Docker 기반 Kafka 서버 구축하고 테스트 (0) | 2022.08.06 |
---|---|
[Kafka] Quick Start (0) | 2020.11.26 |
[Kafka] ZooKeeper 설정 (1) | 2020.11.24 |
[Kafka] 설치하고 실행해보기 (0) | 2020.11.23 |
Kafka란? (0) | 2020.10.13 |
블로그의 정보
개발하는만두
youngjun._.