Message Queue

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 11장 카프카 커넥트

카프카 커넥트카프카 커넥트는 아파치 카프카의 오픈소스 프로젝트데이터베이스 같은 외부 시스템과 카프카를 쉽게 연결하기 위한 프레임워크REST API로 구성되어있음커넥트 프레임워크를 이용해 대용량의 데이터를 카프카의 안팎으로 쉽게 이동시킬 수 있음프로듀서와 컨슈머를 직접 개발해 원하는 동작을 실행할 수 있지만, 카프카 커넥트를 이용하면 더 효율적으로 빠르게 구성하고 적용시킬 수 있음카프카 커넥트 장점데이터 중심 파이프라인 커넥트를 이용해 카프카로 데이터를 송수신유연성과 확장성 테스트 및 일회성 작업을 위한 단독 모드로 실행할 수 있고, 대규모 운영환경을 위한 분산 모드(클러스터)로 실행할 수 있음재사용성과 기능 확장 커넥터는 이미 만들어진 기존 커넥터들을 활용할 수 있고 운영 환경에서의 요구사항에 맞춰..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 10장 스키마 레지스트리

스키마 레지스트리DB와 비슷하게 카프카에서도 스키마를 사용하는데, 토픽으로 전송되는 메시지에 대해 미리 스키마를 정의한 후 전송함으로써 DB에서 얻을 수 있는 동일한 효과를 얻음10.1 스키마의 개념과 유용성어떤 누가와도 쉽게 사용하고, 장애가 발생해도 쉽게 복구할 수 있어야함명세서, 정의 등을 해야하는 데, 이것이 스키마카프카의 데이터 흐름은 대부분 브로드캐스트 방식카프카는 데이터를 전송하는 프로듀서를 일방적으로 신뢰할 수밖에 없는 방식그러므로 프로듀서 관리자는 카프카 토픽의 데이터를 컨슘하는 관리자에게 반드시 데이터 구조를 설명해야함데이터에 대한 정확한 정의와 의미를 알려주는 역할 -> 스키마10.2 카프카와 스키마 레지스트리카프카에서 스키마를 활용하는 방법과 스키마 레지스트리에 가장 최적화된 에이브..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 9장 카프카 보안

카프카 보안카프카는 보안이 자동으로 설정되지 않기 때문에, 직접 보안을 적용해야함9.1 카프카 보안의 세 가지 요소카프카 보안의 3요소세 가지 보안 요소가 존재암호화: 인증과 권한설정을 한 후 누군가 악의적으로 패킷을 가로채더라도 암호화하여 데이터를 읽을 수 없게 함. https 접근과 같은 원리인증: 확인된 클라이언트만 접근 가능하도록 설정. 웹에서 아이디/비밀번호를 입력해 로그인 성공한 사람만 받는 것과 비슷한 원리권한: 특정 토픽 등 영역을 지정해 사용자별로 접근을 제어하는 것.세 가지 보안 요소를 적용하기 위해 필요한 기능은 뭐가 있을까?9.1.1 암호화. SSL(Secure Socket Layer)가로침을 당해도 읽지 못하도록 적용하는 암호화서버와 서버 사이, 서버와 클라이언트 사이에서 통신 보..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 8장 카프카 버전 업그레이드와 확장

8.1 카프카 버전 업그레이드를 위한 준비카프카 버전 업그레이드 전 본인 카프카 버전 확인/usr/local/kafka/bin/kafka-topics.sh --versionex2.6.0 (Commit:62a..)업그레이드 종류메이저 업그레이드: 1.x or 0.x -> 2.x마이너 업그레이드: 2.0 -> 2.x메이저 업그레이드는 메시지의 포맷 변경, 브로커에서의 기본값 변화, 과거에는 지원됐던 명령어의 지원 종료, 일부 JMX 메트릭의 변화 등 변경 가능성이 크므로 유의업그레이드시 카프카는 다운타임을 가질 수도, 안가질 수도 있음다운타임을 갖는 것은 어렵고, 영향을 최소하하여 롤링 업그레이드를 해야함8.2 주키퍼 의존성이 있는 카프카 롤링 업그레이드버전마다 옵션이 다르므로 유의해야함2.1 -> 2.6 ..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 7장 카프카 운영과 모니터링

카프카 운영과 모니터링다른 애플리케이션에 비해 비교적 안전한 카프카. 하지만 모니터링은 당연히 필요7.1 안정적인 운영을 위한 주키퍼와 카프카 구성관리자가 단일 장애 지점 등을 제거하고 클러스터를 구성한다면? BEST7.1.1 주키퍼 구성최근들어 카프카 오픈소스 진영에서 카프카의 코디네이터 역할을 하는 주키퍼의 의존성을 제거하려고 함주피커는 파티션과 브로커의 메타데이터를 저장하고 컨트롤러 서버를 선출하는 동작을 수행주키퍼의 역할을 카프카 내부에서 처리하여 운영 효율성을 높일 수 있고, 더 많은 파티션을 처리할 수 있음주키퍼 서버 수량주키퍼는 쿼럼(과반수) 구성을 기반으로 동작하므로 반드시 홀수로 구성해야함주키퍼를 구성할 때 최소 수량으로 구성하려면 주키퍼 서버의 수는 3이렇게 구성된 주키퍼는 과반수인 2..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 6장 컨슈머의 내부 동작 원리와 구현

실전 카프카 개발부터 운영까지컨슈머의 주요한 역할: 카프카에 저장된 메시지를 가져오는 것6.1 컨슈머 오프셋 관리오프셋이란? 메시지의 위치, 숫자 형태로 나타냄컨슈머 동작 중 가장 핵심: 오프셋 관리컨슈머가 메시지를 꺼내오므로 어디까지 가져왔는지 표시하는 것이 가장 중요하기 때문. 복구할 때도 사용컨슈머 그룹이 자신의 오프셋 정보를 카프카에서 가장 안전한 저장소인 토픽에 저장컨슈머 그룹에 컨슈머 1과 컨슈머2라는 2개의 컨슈머가 존재할 때컨슈머들은 지정된 토픽의 메시지를 읽은 뒤, 읽어온 위치의 오프셋 정보를 __consumer_offsets에 기록기록된 정보를 바탕으로 컨슈머 그룹은 자신의 그룹이 속해 있는 컨슈머의 변경이 발생하는 경우(컨슈머 장애 또는 이탈) 해당 컨슈머의 다음으로 읽어야할 위치를 ..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 5장 프로듀서의 내부 동작 원리와 구현

프로듀서의 내부 동작 원리와 구현프로듀서의 기본 역할은 소스에 있는 메시지들을 카프카의 토픽으로 전송하는 것프로듀서가 전송하는 메시지들은 프로듀서의 send() 메서드를 통해 시리얼라이저, 파ㅣ셔너를 거쳐 카프카로 전송됨5.1 파티셔너카프카의 토픽은 성능 향상을 위한 병렬 처리가 가능하도록 하기 위해 파티션으로 나뉘고 최소 1 또는 2 이상의 파티션으로 구성됨프로듀서가 카프카로 전송한 메시지는 해당 토픽 내 각 파티션의 로그 세그먼트에 저장됨프로듀서는 토픽으로 메시지를 보낼 때 해당 토픽의 어느 파티션으로 보낼지 결정하는 것이 파티셔너메시지의 키를 해시처리하여 파티션을 구하는 알고리즘을 사용함키값이 같다? 같은 파티션으로 전송예상치 못하게 많은 양이 인입될때 처리하기 위해 토픽의 파티션을 늘릴 수 있는 ..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 4장 카프카의 내부 동작 원리와 구현

카프카의 내부 동작 원리와 구현4.1 카프카 리플리케이션카프카는 수많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할중요한 메인 허브 역할을 하는 카프카 클러스터가 만약 동작하지 않는다면 전체 데이터 파이프라인에 영향을 미칠 수 있고 매우 심각한 문제를 초래할 수 있음그래서 카프카는 한두 대에서 장애가 발생해도 안정적으로 처리할 수 있게 해주는 것이 리플리케이션4.1.1 리플리케이션 동작 개요카프카의 리플리케이션 동작을 위해 토픽 생성시 필숫값으로 아래의 옵션을 해줘야함replication factor같은 메시지를 다른 브로커들도 함께 갖고 있기 때문에 N의 리플리케이션이 있다면 N-1까지 장애가 발생해도 메시지 손실 없이 안정적으로 주고받을 수 있음4.1.2 리더와 팔로워동일안 리플리케이션이라 ..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 3장 카프카 기본 개념과 구조

3.1 카프카 기초 다지기카프카를 구성하는 주요 요소주키퍼(ZooKeeper): 아파치 프로젝트 애플리케이션 이름. 카프카의 메타데이터 관리 및 브로커의 정상상태 점검을 담당카프카(Kafka)또는 카프카 클러스터(Kafka Cluster): 아파치 프로젝트 애플리케이션 이름. 여러 대의 브로커를 구성한 클러스터를 의미브로커(Broker): 카프카 애플리케이션이 설치된 서버 또는 노드프로듀서(Producer): 카프카로 메시지를 보내는 역할을 하는 클라이언트컨슈머(consumer): 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트토픽(Topic): 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유함파티션(Partition): 병렬 처리 및 고성능을 얻기 위해 하나의 토픽..

Message Queue/Kafka

실전 Kafka 개발부터 운영까지. 1장 카프카 개요, 2장 카프카 환경 구성

1장 카프카 개요1.1 잘란도와 트위터의 카프카 도입 사례잘란도는 🛍️온라인 쇼핑몰이며 무신사와 유사. 국내에서 무신사가 있다면 유럽에는 잘란도신뢰성이 있는 데이터가 되기 위해선 인바운드 데이터와 아웃바운드 데이터가 ✔️일치해야한다.과거에는..초기에는 API와 DB로 연결하는 CRUD로 구성하여 DB 업데이트가 된 후 아웃바운드 이벤트가 생성 🔄동기화문제여러 네트워크를 이용하는 환경에서 모든 데이터 변경에 대한 올바른 전달 보장 문제동일한 DB를 동시에 수정하면서 순서를 보장해야하는 문제, 수정된 이벤트들을 순서대로 아웃바운드 전송하는 문제Client의 다양한 요구사항을 효율적으로 지원하기 어려운 문제빠른 전송을 위한 Client 또는 대량의 배치 전송을 위한 클라이언트를 지원하기 어려운 문제동기 방..

토이 개발 스토리
'Message Queue' 카테고리의 글 목록