DrMaemi / blog

1 stars 0 forks source link

[Kafka] properties #187

Open DrMaemi opened 6 months ago

DrMaemi commented 6 months ago

server.properties

## Basic ##
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

## Socket Server Setting ##
# Broker가 사용하는 호스트, 포트 지정
# The address the socket server listens on.
# If not configured, the hostname will be java.net.InetAddress.getCanonicalHostName()
#listeners = PLAINTEXT://host.name:9092
listeners=PLAINTEXT://:9092

# Producer, Consumer가 접근할 호스트와 포트 지정 (기본값: listeners)
#advertised.listeners = PLAINTEXT://host.name:9092
advertised.listeners=PLAINTEXT://localhost:9092

# 네트워크 요청 처리용 스레드 개수 기본값 3
# The number of threads that the server uses for receiving reuests from the network
# and sending responses to the network
num.network.threads=3
# I/O 처리용 스레드 개수 기본값 8
# The number of threads that the server uses for processing requests which may include disk I/O
num.io.threads=8

# 소켓 서버의 송수신 버퍼 사이즈, 기본값 100KB
# The send buffer (SO_SNDBUF) used by the socket server
socket.send.buffer.bytes=102400
# 서버가 수신 가능한 최대 요청 사이즈
# The receive buffer (SO_RCVBUF) used by the socket server
socket.request.max.bytes=104857600

## Log Basics ##
# A comma separated list of directories under which to store log files
log.dir=/tmp/kafka-logs

# 토픽 당 파티션 수. 입력된 값만큼 병렬 처리 가능, 데이터 파일도 그만큼 증가
# The default number of log partitions per topic.
# More partitions allow greater parallelism for consumption.
# But this will also result in more files across the brokers.
num.partitions=1

# 시작 시 로그 복구 및 종료 시 flushing에 이용될, data directory 당 스레드 개수
# RAID 배열에 위치한 data directory 개수만큼 값을 증가시켜 사용 권장
# The number of threads per data directory to be used for log recovery
# at startup and flushing at shutdown.
# This value is recommended to be increased for installations with data dirs located in RAID array.
num.recovery.threads.per.data.dir=1

## Internal Topic Settings
# 내부 토픽 consumer offset, transaction state 에 대한 replication factor
# 개발 환경이 아닌 운영 환경에선 3 정도 사용 권장(가용성 보장을 위해)
# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state"
# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3.
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

## Log Retiontion Policy
# The minimum age of a log file to be eligible for deletion due to age
log.retention.hours=168 # 7 days

# 세그먼트 = 토픽 별로 수집한 데이터를 보관하는 파일
# 세그먼트 파일의 최대 크기, 기본값 1 GB
# 세그먼트 파일 용량이 차면 새로운 파일을 생성한다.
#log.setgment.bytes=1073741824 # 1 GB

# The interval at which log segments are checked to see if they can be deleting
# according to the retention policies
log.retention.check.interval.ms=300000 # 5 minutes

## Zookeeper
# Zookeeper connection string
# Thie is a comma seperated host:port
zookeeper.connect=localhost:2181

# Timeout for connecting to zookeeper
zookeeper.connection.timetout.ms=18000 # 18 seconds
DrMaemi commented 6 months ago
import java.util.Properties;
import org.apache.kafka.streams.StreamsConfig;

// 1. Java.Util.Properties 인스턴스를 생성한다.
Properties settings = new Properties();

// 2. 필요한 파라미터들을 세팅한다.
settings.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-first-streams-application");
settings.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka-broker1:9092");

// 3. StreamsConfig 객체를 Properties 객체로부터 생성한다.
StreamsConfig config = new StreamsConfig(settings);

...

설정 파라미터 종류

필수(Required)

선택(Optional)

A. 참조