* https://www.ibm.com/support/knowledgecenter/ko/SSPFMY_1.3.5/com.ibm.scala.doc/config/iwa_cnf_scldc_kfk_prp_exmpl_c.html
$ vi /usr/local/kafka/config/server.properties
[ Server Basics ]
broker.id=1 : 브로커를 구분하기위한 ID
[ Socket Server Settings ]
listeners=PLAINTEXT://:9092 : 카프카 소켓서버가 수신하는 주소. 기본포트는 9092
num.network.threads=3 : 네트워크 요청을 처리하는 데 사용되는 스레드 수
num.io.threads=8 : 입력 및 출력 조작에 사용되는 스레드의 수
socket.send.buffer.bytes=102400 : 소켓서버가 사용하는 전송버퍼의 크기
socket.receive.buffer.bytes=102400 : 소켓서버가 사용하는 수신버퍼의 크기
socket.request.max.bytes=104857600 : 소켓 서버가 수락하는 요청의 최대 크기, Out Of Memory를 방지
queued.max.requests=16 : 네트워크 스레드가 차단되기 전에 허용되는 최대 스레드 수
[ Log Basics ]
log.dirs=/data1,/data2 : 로그 파일을 저장하려는 디렉토리
num.partitions=1 : 토픽당 기본 파티션의 수. 파티션이 많을수록 메세지 소비가 더 많은 병렬처리가 된다. 그러나 기본적으로 서버의 물리적 프로세서 수의 절반정도를 권한다. 예를 들어 8개의 프로세서가 있으면 4개로 지정
num.recovery.threads.per.data.dir=1 : 각 데이터 디렉토리에 대한 로그 복구에 사용되는 스레드 수
log.index.size.max.bytes=154624 : 오프셋 색인의 최대 크기
log.index.interval.bytes=4096 : 오프셋 색인에 추가되는 간격바이트
message.max.bytes=1000000 : 서버가 수신할 수 있는 메시지의 최대 크기
auto.create.topics.enable=true : 서버에서 토픽을 자동 생성 ( 존재하지 않는 토픽으로 메세지 보낼시 )
[ Internal Topic Settings ]
offsets.topic.replication.factor=1 :
transaction.state.log.replication.factor=1 :
transaction.state.log.min.isr=1 :
그룹 메타데이터 _consumer_offsets 과 _transaction_state에 대한 복제관련 설정
[ Log Flush Policy ]
log.flush.interval.messages=10000 : 메시지가 플러시되기 전에 누적될 수 있는 최대 메시지 수
log.flush.interval.ms=1000 : 메시지가 플러시되기 전에 메모리에 유지할 수 있는 최대 시간
log.flush.scheduler.interval.ms=2000 : 로그가 플레시 되는 간격
[ Log Retention Policy ]
log.retention.hours=168 : 저장된 로그 보관시간
log.retention.bytes=1073741824 : 지정된 로그에서 보존되어야 하는 바이트 수
log.segment.bytes=1073741824 : 저장되는 로그파일 하나의 크기
log.retention.check.interval.ms=300000 : 로그 보관주기 체크시간
log.cleaner.enable=false : 로그 클리너사용. 설정 시 로그 보존 정책에서 지정된 보존 기간이 만료된 후 로그가 삭제됨
[ Zookeeper ]
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/hadoop-kafka : 주키퍼 접속 정보