본문 바로가기
728x90
반응형

전체 글79

1. 리액티브 시스템과 리액티브 프로그래밍 & 2. 리액티브 스트림즈 개요 스프링으로 시작하는 리액티브 프로그래밍 책을 보고 정리하고자 해당 포스팅을 작성하고 있다.목차 별로 중요하다고 생각되는 부분, 개발할 때 기억해 두면 좋을 부분을 추려보고자 한다. 리액티브 시스템이란? 비동기 메시지 기반 통신으로, 클라이언트 요청에 즉각적으로 응답하여 지연 시간을 최소화하는 시스템. 설계원칙 빠른 응답성을 바탕으로 유지보수와 확장이 용이한 시스템 Means 주요 통신 수단으로 무엇을 사용할건지 표현 비동기 메시지 기반의 통신을 통해 구성요소 간의 느슨한 결합, 격리성, 위치 투명성 보장해야 함. 스레드가 요청에 대해 1:1로 매핑되지 않는다. Form 비동기 메시지 통신 기반 하에 탄력성과 회복성을 가지는 시스템이어야 함. 탄력성: 시스템 자원을 적절히 추가하거나 감소시켜 작업량의.. 2024. 3. 31.
[Kafka] 2. 토픽과 파티션 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 이전 포스팅 참조 2024.03.31 - [Message Queue] - [kafka] 1. kafka의 역사, 장점 [kafka] 1. kafka의 역사, 장점 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 카프카를 사 daewoony.tistory.com 토픽 카프카에서 데이터를 구분하기 위해 사용하는 논리적인 단위 1개 이상의 파티션을 소유함. 파티션 프로듀서가 보낸 데이터(레코드)들이 저장되는 물리적인.. 2024. 3. 31.
[kafka] 1. kafka의 역사, 장점 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 카프카를 사용하기 전에 kafka의 역사와 장점 등을 먼저 알면 좋을 것이라 판단하여 가장 먼저 기록한다. 역사 링크드 인에서 단방향 통신을 통해 데이터 생성하는 소스 애플리케이션 → 적재되는 타깃 애플리케이션 으로 연동하는 소스코드를 작성했다. 시간이 지날 수록 아키텍쳐가 거대해지면서 문제가 생기기 시작했다. ex) 타겟 애플리케이션에서 장애가 발생할 경우 해당 데이터를 생성하는 소스 애플리케이션 모두에 장애가 발생한다. (지속적인 데이터 전송 실패 재시도) → 따라서 이러한 파편화된 데이터 흐름을 개선하기 위해 카프카를 개발하였다.. 2024. 3. 31.
[kafka] kafka config 설정 목적 아래 프로젝트에 kafka를 붙이고자 할 때 어떻게 설정할지 공유하고자 한다. 1시간에 한번 실행. 사용자 상호작용 로깅이 아닌 원본 데이터를 가공한 데이터. 실시간으로 실행. 원본 데이터는 mysql에 저장되어있음. 브로커 replication.factor 데이터 유실 방지를 위해 3으로 적용 unclean.leader.election.enable ISR이 아닌 OSR을 가지고 있는 broker를 leader로 선출할 수 있도록 설정하는 옵션. true일 경우, 브로커가 모두 down 되었다가 OSR 상태의 브로커만 up 되었을 때, 데이터는 일부 유실하더라도 서비스할 수 있다. false일 경우, 데이터는 유실하지 않으나, producer, consumer의 요청을 받을 수 없어 서비스 불가하다.. 2024. 3. 31.
728x90
반응형