Boaz/Real-time Data and Kafka7 [카프카 핵심 가이드 #3] 4장 카프카 컨슈머: 카프카에서 데이터 읽기 목차0. 장을 시작하며1. 카프카 컨슈머: 개념2. 카프카 컨슈머 생성하기3. 토픽 구독하기4. 폴링 루프5. 컨슈머 설정하기6. 오프셋과 커밋7. 리밸런스 리스터8. 특정 오프셋의 레코드 읽어오기9. 폴링 루프를 벗어나는 방법10. 디시리얼라이저11. 독립 실행 컨슈머 standalone consumer 0. 장을 시작하며KafkaConsumer데이터를 읽는 애플리케이션은 토픽을 구독하고 구독한 토픽들로부터 메세지를 받기 위해 1. 카프카 컨슈머: 개념컨슈머와 컨슈머 그룹컨슈머 객체객체 생성하고, 토픽 구독, 메세지를 받아 검사하고 결과를 작성메세지가 빠르게 쓰이는 경우, 컨슈머가 하나뿐이라면, 메세지 속도 감당 불가→ 여러 개의 컨슈머가 같은 토픽으로부터 데이터를 분할해 읽어올 수 있도록컨슈.. 2024. 8. 22. [카프카 핵심 가이드 #2] 3장 카프카 프로듀서: 카프카에 메시지 쓰기 목차0. 장을 시작하며1. 프로듀서 개요2. 카프카 프로듀서 생성하기3. 카프카로 메세지 전달하기4. 프로듀서 설정하기5. 시리얼라이저6. 파티션7. 헤더8. 인터셉터9. 쿼터, 스로틀링 0. 장을 시작하며카프카를 사용할 때카프카에 데이터를 쓸 때 사용하는 프로듀서읽어올 때 사용하는 컨슈머두 가지 기능 모두를 수행하는 애플리케이션 생성개발자들이 카프카와 상호작용하는 애플리케이션을 개발할 때 사용할 수 있는 클라이언트 API와 함께 배포프로듀서디자인, 주요 요소KafkaProducer, ProducterRecord 객체 생성레코드 전송, 에러 처리작동 제어를 위한 중요 설정 옵션파티셔너와 시리얼라이저(객체의직렬화 방식 정의) 1. 프로듀서 개요카프카에 메세지를 써야하는 상황(목적): 다양사용자 행.. 2024. 8. 22. [카프카 핵심 가이드 #1] 1장 카프카 시작하기 목차0. 카프카에 대해 알아보기1. 발행/구독 메세지 전달2. 카프카 입문3. 왜 카프카인가?4. 데이터 생태계5. 카프카의 기원 0. 카프카에 대해 알아보기💡 **GPT 선생님은 아래와 같이 말씀하셨다**카프카(Apache Kafka)는 데이터를 실시간으로 처리하고 전달하는 시스템입니다. 쉽게 말해서, 카프카는 데이터를 빨리 주고받을 수 있게 해주는 '메신저' 같은 역할을 합니다.예를 들어, 어떤 쇼핑몰 웹사이트에서 사용자가 상품을 클릭하면 그 정보를 실시간으로 서버에 전달해야 할 때가 있습니다. 이 때 카프카가 사용됩니다. 사용자가 클릭한 정보는 카프카를 통해 바로 서버로 전달되고, 서버는 그 정보를 분석하여 적절한 광고를 보여주거나 재고를 관리하는 등의 작업을 할 수 있습니다.카프카는 다음과.. 2024. 8. 22. [대규모 실시간 데이터 처리 #4] 대규모 시스템 설계 기초. 12장 채팅 시스템 설계 목차1단계 문제 이해 및 설계 범위 확정2단계 개략적 설계안 제시 및 동의 구하기3단계 상세 설계4단계 마무리 1단계 문제 이해 및 설계 범위 확정어떤 채팅 앱1:1 채팅 vs 그룹 채팅모바일 vs 웹트래픽 규모그룹 채팅 인원 제한중요 기능메세지 길이 제한종단 간 암호화채팅 이력 보관 등이 책의 이 장에서 설계하는 앱: 페이스북 메신저와 유사한 채팅 앱 2단계 개략적 설계안 제시 및 동의 구하기클라이언트: 모바일 앱 or 웹 애플리케이션클라이언트는 서로 통신 X기능을 지원하는 채팅 서비스와 통신채팅 서비스클라이언트들로부터 메시지 수신메시지 수신자 recipient 결정 및 전달수신자가 접속 online 상태가 아닌 경우, 접속할 때까지 해당 메세지 보관서버 ↔ 클라이언트HTTP 프로토콜 사용송신 .. 2024. 8. 4. [대규모 실시간 데이터 처리 #3] 대규모 시스템 설계 기초. 9장 웹 크롤러 설계 목차웹 크롤러1단계 문제 이해 및 설계 범위 확정2단계 개략적 설계안 제시 및 동의 구하기3단계 상세 설계4단계 마무리 웹 크롤러 web crawler로봇 robot, 스파이더 spider다양하게 이용됨검색 엔진 인덱싱 search engine indexing: 검색 엔진을 위한 로컬 인덱스. Googlebot웹 아카이빙 web archiving웹 마이닝 web mining웹 모니터링 web monitoring웹 크롤러의 복잡도: 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라짐 → 데이터의 규모와 기능 파악 필요 1단계 문제 이해 및 설계 범위 확정주의 필요 속성규모 확장성웹은 거대→ 병행성 paralleism 활용안정성 robustness비정상적인 입력이나 환경에 잘 대응해야 함예절.. 2024. 8. 4. [대규모 실시간 데이터 처리 #2] 대규모 시스템 설계 기초. 2장~3장 개략적인 규모 추정, 시스템 설계 면접 공략법 목차 2장 개략적인 규모 추정 3장 시스템 설계 면접 공략법 2장 개략적인 규모 추정태그: 대규모 시스템 설계 기초주차: 1 개략적인 규모 추정 back-of-the-envelope estimation보편적으로 통용되는 성능 수치상에서 사고 실험 thought experiments → 추정치 계산어떤 설계가 요구사항에 부합할 것인지규모 확장성 표현 이해 필요 2의 제곱수데이터 볼륨의 단위를 2의 제곱수로 표현최소 단위 1바이트, 8비트 구성ASCII 문자 하나 차지하는 메모리 크기: 1바이트 응답지연 값구글의 제프 딘: (2010년) 컴퓨터에서 구현된 연산들의 응답지연 값 공개결론메모리는 빠르지만 디스크는 느리다디스크 탐색은 가능한 피하라단순한 압축 알고리즘은 빠르다데이터를 인터넷으로 전송하기 전에.. 2024. 7. 28. [대규모 실시간 데이터 처리 #1] 대규모 시스템 설계 기초. 1장 사용자 수에 따른 규모 확장성 목차단일 서버데이터베이스수직적 규모 확장 vs 수평적 규모 확장콘텐츠 전송 네트워크 CDN무상태 stateless 웹 계층데이터 센터 data center메세지 큐로그, 메트릭 그리고 자동화데이터베이스의 규모 확장 단일 서버가장 간단한 시스템모든 컴포넌트(웹 앱, 데이터베이스, 캐시 등)가 단 한 대의 서버에서 실행되는 시스템사용자 → 웹 서버 접속도메인 이름 (ex. api.mysite.com) → 도메인 이름 서비스 DNS 질의 → IP 주소 변환 (ex. 15.125.23.214)DNS는 보통 제 3사업자가 제공하는 유료 서비스 이용IP 주소로 HTTP 요청 전달요청 받은 서버는 HTML페이지나 JSON 형태 응답 반환사용자 단말웹 애플리케이션: 서버 구현용 언어(자바, 파이썬등), 클라이언트.. 2024. 7. 28. 이전 1 다음