본문 바로가기

KAFKA6

RabbitMQ 정리 RabbitMQ 는 AMQP를 기반으로 프로세스간 통신을 지원하는 메시징큐이다. 카프카만 사용하다 RabbitMQ 를 사용해야할 일이 있어서 블로그를 작성한다. AMQP(Advanced Message Queuing Protocol) : 분산 시스템에서 메시지 브로커 시스템을 구현하기 위한 표준 프로토콜 1. RabbitMQ 의 구조 단순한 구조부터 세부적인 구조까지 알아보자. Producer - Broker - Consumer 아주 기본적인 메시징 큐의 구조이다. Producer(전달자)가 Broker(Queue)에 메시지를 전달하면 Consumer(소비자)가 메시지를 받는다. ------------------------------------- 다음은 좀 더 세부적인 구조이다. Broker에 여러개의 Q.. 2023. 3. 3.
kafka kraft - 어려워서 나중에 따로 정리..뭔가 좀 쿠버네티스랑 비슷한듯 싶은데,, 컨플루언트 엔지니어 ( 콜린 맥케이브 ) : 주키퍼를 사용하면 클러스터 메타데이터를 저장하고 동적 구성, 토픽, 토픽 내 파티션을 관리할 수 있지만 관리 계층을 추가하는 문제점이 있다. 오히려 카프카 내부에 메타데이터를 저장하면 더 쉽게 관리할 수 있고, 버전 관리 등의 문제를 해결할 수 있다 그래서 Kraft 를 만들었음. Kraft는 상호 협의 알고리즘인 raft 알고리즘을 기반으로 만듬. 이제 카프카를 사용함으로써 주키퍼 앙상블을 별도로 구축할 필요 없음. 또한 주키퍼를 사용해왔던 개발자를 배려하여, 동일한 API를 제공한다고함. 출처 https://speakerdeck.com/dongjin/introducing-kraft-kafka-without-zookeeper?slide=6 https://yo.. 2022. 10. 18.
카프카 코어 정리 티스토리가 터져서 여기다 씀 멀티노드 카프카 클러스터란? 분산 시스템으로서 카프카의 성능가 가용성을 함께 향상 시킬 수 있도록 브로커 서버를 배치하는 것 스케일 아웃 기반으로 노드 증설을 통해 카프카의 메시지 전송과 읽기 성능을 (거의 // 클러스터끼리 네트워크 i/o 덕분에 선형적이지는 않음.) 향상시킴. 데이터 복제를 통해 분산 시스템 기반에서 고가용성을 지원한다. 분산 시스템에서 고려해야할 요소는 1. 성능 2. 안정성 3. 가용성 분산 시스템은 대량의 데이터를 여러 노드 간 분산 처리를 통해 빠르게 처리할 수 있는 큰 성능적 이점을 가지지만 안전성과 가용성에서는 단점도 있음. - 네트워크 장애가 발생 시, 노드간 통신이 안되어 복제, 분산 처리가 가능하지 않음. 하지만 단일 노드에서 브로커 서버를.. 2022. 10. 16.
카프카 컨수머 구조 이전에는 카프카 컨수머는 해당 토픽에서 "그냥" 가져온다는 것만 알고 있었다. 이제 곧 학부를 졸업하는 입장으로서 좀 더 깊은 지식을 함양하고자 이번 글을 쓴다. 프로그래밍 세계에서 "그냥"이라는 말은 해당 지식을 모르고 있다는 말이다. 자세한 메커니즘을 알아야 문제가 생겼을때 문제를 해결할 수 있다. 이제 아는만큼 적어보자. 이 글은 "인프런의 권민철 강사님의 강의"를 기반으로 작성한다. 카프카의 컨수머는 그룹단위로 움직인다. 하나의 컨수머 그룹에는 하나 이상의 컨수머가 존재한다. 컨수머의 개수는 컨수머 그룹이 subscribe하고 있는 토픽의 파티션 개수에 따라 정하는 것이 일반적이다. 컨수머의 개수는 파티션의 개수 이상이 되면 파티션 개수보다 많은 컨수머는 아무것도 하지 않는다. 하나의 파티션은 하.. 2022. 10. 8.