티스토리 뷰
# producer
property | 설명 | default |
key.serializer | key 를 직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Serializer 를 구현해야함 |
|
value.serializer | value 를 직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Serializer 를 구현해야함 |
|
bootstrap.servers | 연결할 kafka cluster 서버 정보 host:port,host:port 형태로 여러개 전달 가능 |
"" |
buffer.memory | 프로듀서가 전달할 레코드들을 버퍼링할 수 있는 총 메모리. 프로듀서 애플리케이션에게 할당된 메모리보다 작아야함. 단위는 바이트 | 33554432 |
compression.type | 레코드 압축형태를 지정함. none, gzip, snappy, lz4, zstd중 선택. 압축은 전송되는 모든 레코드를 합쳐서 진행되기때문에 배치 전송과 함께 사용할 경우 더 효율적임 |
none(압축안함) |
retries | 메세지 전송이 실패했을때 재시도할 횟수 delivery.timeout.ms 에 설정된 시간이 초과하면 재시도 횟수가 남아있어도 재시도하지 않고 실패로 간주함 |
2147483647 |
batch.size | 레코드를 해당 크기만큼 모아서 일괄 전송할때 사용. 크기를 작게 사용하면 레코드를 자주 전달하고, 너무 크게 설정하면 해당 배치 크기만큼 메모리를 미리 할당하므로 비효율적일 수 있음 배치 사이즈 설정만큼 레코드가 모이지 않으면 linger.ms 에 설정된시간만큼 대기 후 전달함. 참고로 linger.ms 는 기본값이 0 이므로 linger.ms 를 설정하지 않은채 배치 사이즈만 설정하면 배치 전달이활성화되지 않음 단위는 byte |
16384 |
delivery.timeout.ms | 메세지 전송의 성공실패를 판단하는 상한값 이 시간내에 응답을 받지 못하면 전송 실패로 간주함 단위는 ms |
120000 |
linger.ms | 메세지 일괄 발송까지 대기하는 시간 해당 설정 시간 전에 batch.size 에 설정된 메세지가 모이면 바로 메세지를 발송하지만 batch.size에 설정된 메세지가 모이지 않더라도 해당 설정 시간이 도달하면 메세지를 발송하게 됨 단위는 ms |
0 |
max.request.size | 전송가능한 개별 레코드의 최대 크기(압축 전 기준) batch.size 가 이 설정보다 크게 될 경우 최대 크기의 메세지 여러개가 배치로 전송될 수 있음 단위는 byte |
1048576 |
request.timeout.ms | 메세지 발송 후 응답을 기다리는 시간 시간 내에 응답이 오지 않으면 재시도 메커니즘이 동작함 단위는 ms |
30000 |
acks | producer 가 발송 완료를 판단하기 위해 받을 응답 값 0: 메세지 발송 후 그 어떤 응답도 기다리지 않고 성공으로 간주함 실패를 확인하지 않으므로 재시도 메커니즘이 작동하지 않음 1: 리더에게만 응답을 받음 리더가메세지를 받은 후 팔로워에게 복제되기 전에 장애가 나게 되면 메세지가 유실 됨 all: 리더와 모든 팔로워들에게도 응답을 받음 복제가 완전히 되어야만 발송 성공으로 간주하기에 가장완벽하지만 대기시간도 가장 길어짐 |
all |
enable.idempotence | 해당 설정을 켜면 메세지를 한번만 발송하게 됨 해당설정이 동작하기 위해서 max.in.flight.requests.per.connection 는 5이하여야하고 retries 는 1이상, acks 는 all 이어야 함 해당 설정이 true 일때 위 조건들이 만족되지 않으면 ConfigException 발생 |
true |
max.in.flight.requests.per.connection | 메세지 응답을 받지 않은 상태에서전송할 최대 메세지 수 이 속성이 1 이상이고 retries 가 활성화되어 있는 경우 메세지 순서가 변경될 수 있음 |
5 |
# consumer
property | 설명 | default |
key.deserializer | key 를 역직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Deserializer 를 구현해야함 |
|
value.deserializer | value 를 역직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Deserializer 를 구현해야함 |
|
bootstrap.servers | 연결할 kafka cluster 서버 정보 host:port,host:port 형태로 여러개 전달 가능 |
|
fetch.min.bytes | 한번 요청에 가져와야할 최소 메세지 크기 단위는 byte |
1 |
group.id | consumer 를 식별한 고유 id | |
heartbeat.interval.ms | consumer 상태를 체크하는 간격 consumer 의 새로운 인스턴스 추가, 삭제를 하는데 사용 일반적으로 session.timeout.ms 값의 1/3 이하로 사용 단위는 ms |
3000 |
max.partition.fetch.bytes | 파티션당 가져올 최대 메세지 크기 단위는 byte |
1048576 |
session.timeout.ms | consumer 는 broker 에게 주기적으로 하트비트를 보내 상태를 알림이 설정 시간 내에 추가적인 하트비트를 받지 못하면 broker 는 해당consumer 를 제외하게 됨 이 설정은 broker 의 group.min.session.timeout.ms, group.max.session.timeout.ms 설정사이에 있어야 함 단위는 ms |
45000 |
auto.offset.reset | consumer 가 처음으로 추가됐거나 다른 이유로 offset 정보가 없을때 동작할 방식 latest: 가장 마지막 offset 으로 설정 earliest: 가장 최신 offset 으로 설정 none: 예외 발생 |
latest |
enable.auto.commit | consumer 의 커밋을 자동으로 실행 | true |
isolation.level | read_committed: 커밋된 메세지만 소비 read_uncommitted: 트랜잭션이 진행중인 메세지도 소비 |
read_uncommitted |
partition.assignment.strategy | broker 가 consumer 그룹에 파티션을 할당할때 사용할 전략 RangeAssignor: 토픽별 파티션 할당 RoundRobinAssignor: 라운드 로빈 방식으로 파티션 할당 StickyAssignor: 기존 할당을 최대한 유지하면서 할당 CooperativeStickyAssignor: 기존 할당을 최대한 유지하지만 리밸런싱이 일어날 수 있음 |
RangeAssignor CooperativeStickyAssignor |
request.timeout.ms | 요청응답 대기 시간 단위는 ms |
30000 |
auto.commit.interval.ms | enable.auto.commit 이 활성화된 경우 그 주기를 설정 단위는 ms |
5000 |
'기타 프로그래밍' 카테고리의 다른 글
CI(Continuous Integration) / CD(Continuous Delivery) / CD(Continuous Deployment) (0) | 2020.01.06 |
---|---|
보다나은 Rest API를 위한 10가지 best practice (0) | 2019.06.18 |
Github와 Jenkins를 이용한 CI 구성하기 (0) | 2019.05.04 |
12 요소 애플리케이션 방법론 (0) | 2018.11.08 |
kafka 클러스터 리더 broker 찾기 (0) | 2018.10.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- TEST
- backend개발환경
- servlet
- Design Pattern
- Spring
- DesignPattern
- Jackson
- JavaScript Core
- programming
- spring cloud
- http
- db
- code
- javascript
- mariadb
- JPA
- Kotlin
- java
- clean code
- EffectiveJava
- OOP
- frontend개발환경
- go-core
- 정규표현식
- generics
- Git
- MySQL
- java8
- toby
- frontcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함