Kafka
-
컨슈머 오프셋 관리컨슈머의 오프셋의 역할은 메시지의 위치를 나타내는 것입니다오프셋이 중요한 이유는 컨슈머가 일시적으로 동작을 멈추고 재시작하는 경우에 새로운 컨슈머가 기존 컨슈머의 역할을 대신하는 경우에 기존 컨슈머의 마지막 메시지 위치부터 새로운 컨슈머가 메시지를 가져오기 때문입니다토픽에 저장하여 관리 그룹 코디네이터컨슈머 그룹이 구독한 토픽의 파티션들과 그룹의 멤버들을 트래킹 스태틱 멤버십(Static Membership)컨슈머 그룹 내에서 컨슈머가 재시작 등으로 컨슈머 그룹에서 나갔다가 다시 합류하더라도 리밸런싱이 일어나지 않게 하는 기능group.instance.id값을 컨슈머를 식별하기 위한 고유값을 입력default : null스태틱 멤버십 또한 session.timeout.ms 시간을 넘어갈..
[Kafka] Consumer 내부 동작 원리컨슈머 오프셋 관리컨슈머의 오프셋의 역할은 메시지의 위치를 나타내는 것입니다오프셋이 중요한 이유는 컨슈머가 일시적으로 동작을 멈추고 재시작하는 경우에 새로운 컨슈머가 기존 컨슈머의 역할을 대신하는 경우에 기존 컨슈머의 마지막 메시지 위치부터 새로운 컨슈머가 메시지를 가져오기 때문입니다토픽에 저장하여 관리 그룹 코디네이터컨슈머 그룹이 구독한 토픽의 파티션들과 그룹의 멤버들을 트래킹 스태틱 멤버십(Static Membership)컨슈머 그룹 내에서 컨슈머가 재시작 등으로 컨슈머 그룹에서 나갔다가 다시 합류하더라도 리밸런싱이 일어나지 않게 하는 기능group.instance.id값을 컨슈머를 식별하기 위한 고유값을 입력default : null스태틱 멤버십 또한 session.timeout.ms 시간을 넘어갈..
2024.09.02 -
Listener Error Handlers@KafkaListener의 attribute -> errorHandlerKafkaListenerErrorHandler 인터페이스를 구현@KafkaListener(topics = "test.topic", errorHandler = "testListenerErrorHandler")public void test(@Payload Param param) { // ....}@Componentpublic class TestListenerErrorHandler implements KafkaListenerErrorHandler { @Override public Object handleError(Message message, ListenerExecutionFail..
[Kafka] Spring Kafka - handling exception(KafkaListenerErrorHandler, DefaultErrorHandler)Listener Error Handlers@KafkaListener의 attribute -> errorHandlerKafkaListenerErrorHandler 인터페이스를 구현@KafkaListener(topics = "test.topic", errorHandler = "testListenerErrorHandler")public void test(@Payload Param param) { // ....}@Componentpublic class TestListenerErrorHandler implements KafkaListenerErrorHandler { @Override public Object handleError(Message message, ListenerExecutionFail..
2024.08.17 -
Producer 주요 옵션OptionDescriptionbootstrap.servers카프카 클러스터는 클러스터 마스터라는 개념이 없으므로, 클러스터 내 모든 서버가 클라이언트의 요청을 받을 수 있음. 클라이언트가 카프카 클러스터에 처음 연결하기 위한 호스트와 포트정보client.dns.lookup하나의 호스트에 여러 IP를 매핑해 사용하는 일부 환경에서 클라이언트가 하나의 IP와 연결하지 못할 경우에 다른 IP로 시도하는 설정.use_all_dns_ips 기본값- DNS에 할당된 호스트의 모든 IP를 쿼리하고 저장. - 첫 번째 IP로 접근 실패 시, 종료하지 않고 다음 IP로 접근 시도. resolve_canonical_bootstrap_servers_only - Kerberos 환경에서 FQDN을 ..
[Kafka] Producer&Consumer 주요 옵션Producer 주요 옵션OptionDescriptionbootstrap.servers카프카 클러스터는 클러스터 마스터라는 개념이 없으므로, 클러스터 내 모든 서버가 클라이언트의 요청을 받을 수 있음. 클라이언트가 카프카 클러스터에 처음 연결하기 위한 호스트와 포트정보client.dns.lookup하나의 호스트에 여러 IP를 매핑해 사용하는 일부 환경에서 클라이언트가 하나의 IP와 연결하지 못할 경우에 다른 IP로 시도하는 설정.use_all_dns_ips 기본값- DNS에 할당된 호스트의 모든 IP를 쿼리하고 저장. - 첫 번째 IP로 접근 실패 시, 종료하지 않고 다음 IP로 접근 시도. resolve_canonical_bootstrap_servers_only - Kerberos 환경에서 FQDN을 ..
2024.08.08 -
3장에서는 카프카의 기본 개념과 구조를 다루고, 카프카의 처리량을 높이기 위해 설계된 분산 시스템, 페이지 캐시, 배치 전송 등을 살펴본 후, 주키퍼의 역할에 대해서도 좀 더 파고든다 카프카 기초 다지기리플리케이션토픽 생성 명령어 중 replication-factor 옵션 : 원본을 포함한 복제본의 수 파티션토픽 하나를 여러 개로 나눠 병렬 처리가 가능하게 만든 것파티션 번호는 0부터 시작파티션 수는 초기 생성 후 늘릴 수 있지만, 절대로 줄일 수 없다!카프카 핵심 개념분산시스템분산 시스템은 네트워크상에서 연결된 컴퓨터들의 그룹을 말하며, 단일 시스템이 갖지 못한 높은 성능을 목표로 합니다.이러한 분산 시스템은 성능이 높다는 장점 이외에도 하나의 서 버 또는 노드 등에 장애가 발생할 때 다른 서버 또는 ..
[Kafka] 실전 카프카:3장:기본 개념과 구조3장에서는 카프카의 기본 개념과 구조를 다루고, 카프카의 처리량을 높이기 위해 설계된 분산 시스템, 페이지 캐시, 배치 전송 등을 살펴본 후, 주키퍼의 역할에 대해서도 좀 더 파고든다 카프카 기초 다지기리플리케이션토픽 생성 명령어 중 replication-factor 옵션 : 원본을 포함한 복제본의 수 파티션토픽 하나를 여러 개로 나눠 병렬 처리가 가능하게 만든 것파티션 번호는 0부터 시작파티션 수는 초기 생성 후 늘릴 수 있지만, 절대로 줄일 수 없다!카프카 핵심 개념분산시스템분산 시스템은 네트워크상에서 연결된 컴퓨터들의 그룹을 말하며, 단일 시스템이 갖지 못한 높은 성능을 목표로 합니다.이러한 분산 시스템은 성능이 높다는 장점 이외에도 하나의 서 버 또는 노드 등에 장애가 발생할 때 다른 서버 또는 ..
2024.08.04