일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- 자바스크립트
- Design Pattern
- 웹사이트 성능
- kafka
- 푸시
- gcm 푸시 번역
- Java
- Push
- 카프카 트랜잭션
- APNS
- 성능
- graphql
- ddd
- nginx설치
- git
- GCM 번역
- 웹사이트최적화기법
- GCM
- notification
- 웹사이트성능
- 카프카
- 디자인패턴
- nginx
- 페이스북 번역
- php
- 도메인 주도 개발
- 푸시 번역
- nginx설정
- Today
- Total
목록카프카 (13)
간단한 개발관련 내용
카프카 트랜잭션의 팬싱(Fencing)은 트랜잭션 프로듀서 간의 중복 방지 및 일관성 보장 메커니즘입니다. 이 기능은 트랜잭션 ID(transactional.id)를 기반으로 작동하며, 특정 트랜잭션이 잘못되거나 장애 상황이 발생했을 때, 중복 트랜잭션 프로듀서가 메시지를 잘못 기록하는 것을 방지합니다.1. 팬싱이 필요한 이유트랜잭션 프로듀서는 상태를 유지하며 트랜잭션 ID(transactional.id)를 통해 클러스터와 연관됩니다. 이때 다음과 같은 상황에서 중복 프로듀서가 발생할 수 있습니다:프로듀서 장애로 인해 클러스터와 연결이 끊긴 경우.네트워크 지연 또는 일시적인 장애로 기존 프로듀서가 복구되지 못했는데, 동일한 transactional.id로 새 프로듀서가 시작된 경우.이 상황에서 두 프로듀..
카프카 완벽 가이드 6장 요약: 카프카 내부 매커니즘6.1 클러스터 멤버십카프카는 브로커의 목록을 유지하기 위해 Apache Zookeeper를 사용.Zookeeper는 브로커가 클러스터에 속해 있는지 확인하고 리더 선출 등 여러 작업을 수행.6.2 컨트롤러컨트롤러 역할:파티션 리더 선출 및 메타데이터 관리.브로커가 추가되거나 제거될 때 파티션의 리더를 선출하고 클라이언트 요청 처리 시작.KRaft (Kafka Raft):Zookeeper 의존 제거: 자체적으로 리더 선출 및 메타데이터 관리.액티브 컨트롤러가 브로커 요청 처리, 팔로워 컨트롤러는 데이터 복제.메타데이터 동기화 및 성능 병목 해결.6.3 복제 (Replication)리더 레플리카:파티션의 리더 역할을 수행하며 쓰기 요청 처리.클라이언트 요..
카프카 완벽 가이드 4장 요약: 컨슈머4.1 카프카 컨슈머: 개념컨슈머와 컨슈머 그룹:컨슈머는 보통 컨슈머 그룹의 일부로 동작하며, 동일 그룹의 컨슈머들은 서로 다른 파티션의 메시지를 읽는다.파티션보다 많은 컨슈머를 추가하면 일부는 유휴 상태가 됨.컨슈머 그룹별 데이터 분리: 애플리케이션마다 별도 그룹 생성 필요.컨슈머를 추가해 그룹 확장 시, 각 컨슈머는 일부 메시지만 처리.리밸런스(rebalance):파티션 재할당 과정으로, 컨슈머 추가/종료/충돌, 토픽 변경 시 발생.리밸런스 전략:조급한 리밸런스: 모든 컨슈머가 소유권 포기 후 재할당. 전체 작업 중단 위험.협력적 리밸런스: 파티션 일부만 재할당해 중단 최소화.정적 그룹 멤버십:group.instance.id 설정 시, 컨슈머 종료 후에도 그룹 멤..
카프카 프로듀서 완벽 가이드 3장 요약 3.1 프로듀서 개요메시지 쓰기:ProducerRecord 생성 → 직렬화 → 파티션 결정(기본적으로 키 기반) → 레코드 배치 생성 → 브로커로 전송.브로커 응답:성공 시 RecordMetadata 반환, 실패 시 에러 발생.프로듀서는 자동으로 재전송을 시도하지만 실패 시 예외를 발생. 3.2 카프카 프로듀서 생성필수 속성:bootstrap.servers: 브로커 주소 목록.key.serializer & value.serializer: 직렬화 클래스 지정.전송 방식:Fire and Forget: 성공 여부 확인 없이 전송.Synchronous send: send() 호출 후 Future.get()로 응답 대기.Asynchronous send: 콜백 함수와 함께 s..
2.1 환경설정2.1.1 운영체제 선택하기책은 리눅스 기반 설명2.1.2 자바 설치하기OpenJDK 기반 자바 구현체 위에서 원활히 작동2.1.3 주키퍼 설치하기아파치 카프카는 카프카 클러스터의 메타데이터와 컨슈머 클라이언트에 대한 정보를 저장하기 위해 아파치 주키퍼를 사용한다. 주키퍼는 설정 정보 관리, 이름 부여, 분산 동기화, 그룹 서비스를 제공하는 중앙화된 서비스이다.독립 실행 서버주키퍼 앙상블주키퍼는 고가용성을 보장하기 위해 앙상블이라 불리는 클러스터 단위로 작동하도록 설계되었다. 부하 분산 알고리즘 때문에 앙상블은 홀수 개의 서버를 가지는 것이 권장된다. 앙상블 멤버(쿼럼)의 과반 이상이 작동하고 있어야 하기 때문이다. 💡주키퍼 앙상블 크기 결정하기주키퍼 앙상블을 구성할 때는 5개의 노드 크..
추천사 💡 카프카는 지속적인 데이터의 흐름을 처리하는데 도움을 주기 위해 만들어진 streaming platform 입니다. 데이터 스트림을 쓰고 읽고 저장하고 처리하는 그런 시스템이죠. 카프카는 메시지 스트림을 쓰고 읽게 해주는 메시징 시스템과 같지만 여러 가지 핵심적인 차이가 있습니다. 첫째로 클러스터에서 실행되기 때문에 카프카는 회사의 모든 데이터 스트림 처리를 위해 탄력적으로 확장할 수 있는 중심 플랫폼의 역할을 합니다. 둘째, 카프카는 우리가 원하는 충분한 기간 동안 데이터를 저장하기 위해 만들어진 진정한 스토리지 시스템 입니다. 또한 신뢰성 있는 데이터 전달을 확실히 보장하므로, 카프카를 서로 다른 시스템의 연결 계층으로 사용할 수 있다는 큰 장점을 갖습니다. 끝으로 대부분의 메시징 시스템은..