반응형

스터디 53

[카프카인액션] 5.3 ~ 5.6. consumer | enable.auto.commit | partition.assignment.strategy

5.3 추적다른 시스템에서 일부 메시지 브로커가 메시지를 처리하는 방법 1) 일부 시스템에서는 컨슈머가 읽은 내용을 기록하지 않는다.메시지를 가져온 다음 수신확인한 후에 그 메시지는 대기열에서 사라진다. 하나의 애플리케이션이(컨슈머) 하는 단일 메시지에 적합 2) 구독자인 모든 사람에게 메시지를 게시한다. 미래의 구독자는 이벤트 발생했을때 수신자 목록에 없기 때문에 놓친다.    5.3.1 그룹 코디네이터 토픽에서 다음 메시지를 읽을 위치 결정하기 위해 오프셋 커밋을 좌표로 사용한다. 예를 들어, 파티션0이 할당된 컨슈머는 다음 오프셋 3을 읽을 준비가 된다.  동일한 파티션 집합이 3개의 각기 다른 브로커에 존재하며, kinaction_teamoffka0과 kinaction_teamsetka1이라는 2..

[카프카인액션] 5.1 ~ 5.2. consumer란 | consumer option | consumer 코디네이트 | consumer group.id

개요 컨슈머 클라이언트는 관심 있는 토픽을 구독하는 프로그램으로, 카프카에서 데이터를 가져와 다른 시스템이나 애플리케이션에 이 데이터를 제공하는 기능을 담당한다. 브로커 외부에 존재하는 클라이언트이므로 프로듀서 클라이언트와 마찬가지로 다양한 프로그래밍 언어로 작성 가능하다.프로듀서 클라이언트와 마찬가지로 실제 컨슈머 프로세스는 별도의 시스템에서 실행할 수 있으며, 특별한 서버에서 실행할 필요는 없다. 실제 프로덕션 환경에서 대부분의 컨슈머 클라이언트는 별도의 호스트에 있다.   5.1 예제 컨슈머가 데이터가 푸쉬(push)하지 않고 토픽을 구독(pull) 하는 것을 안다는 것이 중요하다.처리 제어의 권한은 컨슈머에 있는 것이다. 토픽에서 데이터를 읽고 애플리케이션에서 사용할 수 있도록 하거나 다른 시스템..

[카프카인액션] 4장. 카프카 프로듀서 | 옵션 (acks, bootstrap.servers, value.serializer, key.serializer) | acks = all, -1, 1, 0 | 타임스탬프

4.1 예제웹사이트가 고객을 위해 어떻게 작동하는지에 대한 사용자 피드백을 받는 애플리케이션을 가정한다.사용자는 지원 계정이나 챗봇에 이메일 생성하는 양식을 웹사이트에 제출지원 담당자가 받은 편지함을 열어 확인한다.  카프카 프로듀서를 도입하고 나면 이메일 대신 메시지를 카프카 토픽에 보내서 데이터에 더 쉽게 접근하게 하려고 한다.데이터를 필요한 형식으로 추출할 수 있다.  4.1.1 프로듀서 설명 📌 프로듀서 작업과 메타데이터프로듀서의 역할: 메시지를 전송하는 역할을 담당.메타데이터: 프로듀서가 클러스터에 접근하려면 토픽 이름 외에도 각 파티션의 리더 레플리카 정보가 필요한데, 프로듀서에서 메타데이터에 대한 정보 가져오기가 포함됨  📌 최종 사용자의 브로커 연결사용자(또는 애플리케이션)는 적어도 하..

[카프카인액션] 3장. 카프카 커넥트 | 카프카 소스 커넥터 | 카프카 소스 + 싱크 커넥터 | 카프카 설계시 고려요소 | 카프카 Apache avro

3.1 카프카 프로젝트 설계 3.1.1 기존 데이터 아키텍쳐 인수- 새로운 가상의 컨설팅 회사는 원격으로 전기 자전거를 관리하는 공장을 재설계하는 계약을 막 따냈다. - 센서는 모니터링하는 내부 장비 상태와 이 상태 이벤트를 지속적으로 제공하는 자전거 전체에 설치된다. - 하지만 현재 시스템은 대부분의 메시지를 무시해야 할 정도로 많은 이벤트가 생성되고 있다.- 현재 데이터는 대용량 클러스터 형태로 구성된 전통저인 관계형 데이터베이스 시스템에 있다.   3.1.2 첫 변경 - 가장 쉬운 방법은 카프카 커넥트로 시작하는 것 3.1.3 내장 기능- 카프카 커넥트의 용도는 자체 프로듀서와 컨슈머를 작성하지 않고 카프카 안팎으로의 데이터 이동을 돕는 것이다.- 커넥트가 전형적인 애플리케이션 로그 파일을 가져와 ..

[카프카인액션] 2장. 레코드 | 브로커 | 프로듀서 | 컨슈머 | 주키퍼 | 커밋 로그 | 카프카 스트림즈 | 컨플루언트 클라이언트 | 스트림 처리

2.1 메시지 생산과 소비 - 메시지(레코드) : 카프카를 통해 흐르는 데이터의 기본 요소   2.2 브로커란 무엇인가 ?- 브로커 : 카프카의 서버 측면으로 생각할 수 있음.  https://ddoance.tistory.com/290 [kafka] 토픽 생성 및 리스트 확인 + producer, consumer 메시지 전달 (mac m1)1. kinaction_helloworld 토픽 만들기bin/kafka-topics.sh --create --bootstrap-server localhost:9094 --topic kinaction_helloword --partitions 3 --replication-factor 3   2. 토픽 확인하기 bin/kafka-topics.sh --list --bootst..

[카프카인액션] 1장. 특징 | 3가지 방식 | 적합하지 않을 수 있는 경우

1장. 카프카 소개 https://kafka.apache.org/intro Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.org 1. 카프카의 특징- 메시지 큐처럼 레코드를 읽고 쓴다.- 내결함성(fault tolerance)으로 레코드를 저장한다.- 스트림이 발생할 때 처리한다. * fault tolerance : https://kafka.apache.org/0102/documentation/streams/architecture#streams_architecture_recovery Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.orgIf a..

[스프링 퀵스타트] Day2 - chapter3. 어드바이스 동작 시점

Chapter 3. 어드바이스 동작 시점 정리AOP(Aspect-Oriented Programming)에서 **어드바이스(Advice)**는 비즈니스 메서드 실행 시 특정 시점에서 실행되는 공통 기능입니다. 이번 포스팅에서는 어드바이스의 주요 동작 시점과 각 시점의 역할을 알아보겠습니다.1. 어드바이스 동작 시점Before비즈니스 메서드가 실행되기 전에 동작합니다.예: 실행 전 사전 로깅 또는 인증.After비즈니스 메서드가 실행된 후 무조건 실행됩니다.세부 종류:After Returning: 메서드가 정상적으로 종료된 후에 동작합니다.After Throwing: 메서드 실행 중 예외가 발생할 경우 동작합니다 (예: try-catch에서 catch와 유사한 역할).After: 메서드 실행이 완료된 후, ..

[스프링 퀵스타트] Day2 - chapter2. 스프링 AOP 용어 및 기본 정리 (v2024)

Chapter 2. AOP 용어 및 기본 정리AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 공통적인 기능을 핵심 로직에서 분리해 유지보수를 쉽고 코드의 가독성을 높이는 방법입니다. 이번 포스팅에서는 AOP의 기본 용어와 이를 이해하는 데 필요한 핵심 개념을 정리하겠습니다.1. AOP의 핵심 용어 정리조인포인트(JoinPoint)클라이언트가 호출하는 모든 비즈니스 메서드가 조인포인트가 될 수 있습니다.AOP를 적용할 수 있는 지점으로, 메서드 호출뿐 아니라 예외 처리와 같은 다양한 지점이 포함됩니다.포인트컷(Pointcut)특정 조건에 맞는 조인포인트를 필터링한 결과입니다.AOP가 적용될 메서드나 클래스를 지정할 수 있습니다.포인트컷 표현식을 사용해 메서드의 실행 시점..

[쿠버네티스 인 액션] 10장.스테이트풀셋 (2)스테이트풀셋 이해하기, 피어 디스커버리, 스테이트풀셋 수동 삭제

10.2 스테이트풀셋 이해하기 1) 안정적인 네트워크 아이덴티티 제공하기 - 스테이트풀셋으로 생성된 파드는 서수 인덱스(0부터 시작)가 할당되고 파드의 이름과 호스트 이름, 안정적인 스토리지를 붙이는 데 사용된다. - 거버닝 서비스 ㄴ 그룹의 특정 파드에서 동작하기를 원하는데 이런 이유로 스테이트풀셋은 거버닝 헤드리스 서비스를 생성해서 각 파드에게 실제 네트워크 아이덴티티를 제공해야 한다.   - 스테이트풀셋 교체하기  - 스테이트풀셋 스케줄링 ㄴ 스케일링하면 사용하지 않는 다음 인덱스를 갖는 파드 인스턴스를 생성, 반대로 다운해도 동일한다. ㄴ 이 부분이 레플리카셋과 대조적이다. ㄴ 1) 한 시점에 하나의 파드 인스턴스만 스케일 다운 (데이터 손실 방지), 2) 하나라도 비정상적인 경우 스케일 다운 작..

[쿠버네티스 인 액션] 10장.스테이트풀셋 (1) 스테이트풀셋이 나오게 된 배경

10.1.데이터베이스 파드를 복제하는 데 레플리카를 사용할 수 있을까? - 각 레플리카가 별도의 퍼시스턴트볼륨 클레임을 사용하도록 만들 수 없다.  1) 개별 스토리지를 갖는 레플리카 여러 개 실행하기 - 방법1) 수동으로 파드 생성하기 ㄴ 레플리카셋이 파드를 감시하지 않으므로 수동으로 파드를 관리하고 파드가 사라지면 다시 생성해야 한다. ㄴ 노드 실패나 고장으로 인한 재스캐쥴링 보장하지 않음 - 방법2) 파드 인스턴스별로 하나의 레플리카셋 사용하기 ㄴ 노드 실패나 고장으로 인한 재스캐쥴링 보장ㄴ 레폴리카셋의 장점을 발휘 못함 ex, 의도된 레플리카 수를 자유롭게 변경못함 - 방법3) 동일 볼륨을 여러 개 디렉터리로 사용하기 ㄴ 모든 파드가 동일한 퍼시스턴트볼륨을 사용하게 하되 각 파드의 볼륨 내부에서 ..

반응형