Open minkukjo opened 2 years ago
(요약 중 밑줄로 표기된 것은 사견 또는 개인 경험입니다)
replication-factor
: 해당 토픽의 replication factor 값 설정bootstrap.servers
acks
(0
, 1
, all
)max.in.flight.requests.per.connection
buffer.memeory
batch.size
linger.ms
bootstrap.servers
group.id
group.instance.id
: 설정하면 static 멤버로 간주되어 불필요한 리밸런싱 방지 (p.187 스태틱 멤버십
에 자세히 나옴)session.timeout.ms
max.poll.records
+ max.poll.interval
enable.auto.commit
auto.commit.interval.ms
auto.offset.reset
isolation.level
: transactional producer인 경우 transaction처리를 하는데, consumer 단에서 어떤 상태의 메시지를 읽을지 설정
Write-through
+ LRU or FIFO
?bootstrap.servers
가 있어서 브로커 목록을 전달받는데, 그럼 실제 전송은 어디로 하는거지? 라운드로빈?
각 메시지들을 여러 개로 복제해서 카프카 클러스터 내 브로커들에 분산시키는 동작을 의미
- 카프카에 전송된 메시지를 여러 대의 서버에 저장하여 하나의 서버가 비정상 종료되더라도 문제없이 메시지를 복원할 수 있음 ⇒ 안정성 향상
- 리플리케이션 팩터(Replication factor) : 메시지를 복제할 서버 개수
- 테스트나 개발환경 : 리플리케이션 팩터 수 1
- 운영 환경(로그성 메시지로서 약간의 유실 허용) : 리플리케이션 팩터 수 2
- 운영 환경(유실 허용하지 않음) : 리플리케이션 팩터 수 3
/data/kafka-logs
경로를 확인하면 각 파티션마다 로그 세그먼트가 저장된 것을 확인할 수 있음
카프카 기초 다지기
Replication
Partition
Partition
Partition
수를 정확하게 예측하기는 어렵다. 늘리긴 쉬우나 줄이는건 안되니까 조심!Segment
Segment
라는 로그 파일의 형태로 브로커의 로컬 디스크에 저장된다.카프카 핵심 개념
분산 시스템
Scale-out
이 가능페이지 캐시
배치 전송 처리
압축 전송
Topic, Partition, Offset
offset
이라 부른다.offset
은 순차적으로 증가하는 64비트 정수 형태이다.고가용성 보장
Raft
알고리즘을 사용해서 고가용성을 보장한다.주키퍼의 의존성