일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcm 푸시 번역
- APNS
- nginx설치
- 디자인패턴
- php
- nginx설정
- kafka
- GCM
- 카프카
- 푸시 번역
- 카프카 트랜잭션
- Push
- notification
- git
- 푸시
- GCM 번역
- Java
- graphql
- 웹사이트성능
- 성능
- 페이스북 번역
- 웹사이트 성능
- nginx
- JPA
- 도메인 주도 개발
- Design Pattern
- 자바스크립트
- ddd
- 웹사이트최적화기법
- Today
- Total
목록하루 벌어 하루 살아요 (158)
간단한 개발관련 내용

1. 카프카 트랜잭션의 목적Exactly-once semantics (EoS): 메시지를 정확히 한 번만 처리.프로듀서-컨슈머 간 원자적 작업:데이터 생산(프로듀서) 및 소비(컨슈머)를 원자적으로 연결.데이터 무결성:장애 발생 시 중복 메시지 방지 및 데이터 일관성 유지. 2. 카프카 트랜잭션의 주요 구성 요소transactional.id:트랜잭션을 구분하는 고유 ID.프로듀서는 transactional.id를 기반으로 트랜잭션 작업을 수행.Producer ID (PID):프로듀서 인스턴스에 부여되는 고유 ID.브로커는 PID를 통해 트랜잭션 상태를 관리.Epoch:트랜잭션 버전 관리.장애 복구 시 동일한 transactional.id로 중복 작업 방지(팬싱).트랜잭션 로그:브로커는 트랜잭션 상태(시작,..

카프카 트랜잭션의 팬싱(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..
컬렉션 : 다양한 컬렉션과 특징을 설명한다컨버터 : 엔터티의 데이터를 변환해서 데이터베이스에 저장한다리스너 : 엔터티에서 발생한 이벤트를 처리한다엔터티 그래프 : 엔터티를 조회할 때 연관된 엔터티들을 선택해서 함께 조회한다14.1 컬렉션OneToMany, ManyToMany를 사용해서 일대다나 다대다 엔터티 관계를 매핑할 때ElementCollection을 사용해서 값 타입을 하나 이상 보관할 때자바 컬렉션의 특징 (중복, 순서)Collection자바가 제공하는 최상위 컬렉션이다. 하이버네이트는 중복을 허용하고 순서를 보장하지 않는다고 가정한다.Set중복을 허용하지 않는 컬렉션이다. 순서를 보장하지 않는다.List순서가 있는 컬렉션이다. 순서를 보장하고 중복을 허용한다.Mapkey, value 구조로 되..