카프카 생태계카프카 프로듀서가 기본적으로 데이터를 넣고, 컨슈머가 데이터를 가져간다.stateful/stateless하게 다시 토픽을 처리해서 넣고 싶을 때는 스트림즈.데이터베이스에서 가져와서 토픽에 데이터를 넣는 역할은 커넥트(소스) 다시 가져가는 애가 커넥트(싱크).그럼 그냥 프로듀서, 컨슈머랑 같은거 아니야? 🙅 프로듀서 컨슈머와의 차이는 템플릿으로 반복적으로 만들 수 있다는 거다. (rest api)프로듀서, 커넥트, 컨슈머, 스트림즈는 모두 java library로 제공되며, go나 js는 써드 파티라 모든 기능이 제공된다고 볼 수 없다는 점 유의.브로커는 뭐해?브로커0, 1, 2에 모두 데이터를 저장해서 브로커0이 죽더라도 컨슈머가 브로커1, 브로커2에서 가져갈 수 있게 분산 저장해.주키퍼는..
높은 처리량 (처리량 더 늘리려면 컨슈머를 늘린다. 이러려면 물론 파티션(브로커)을 동일한 개수만큼 더 늘려야.)확장성 (하루에 처리량이 예상치 못하게 가변적일 때 브로커 개수를 스케일 인, 아웃하여 유동적으로 운영 가능.)영속성 (데이터를 생성한 프로그램이 종료되더라도 사라지지 않는다는 특징. 다른 메시징 플랫폼과 다르게 메모리가 아닌 파일 시스템에 저장하기 때문. 빠른 이유는 한 번 읽은 내용을 메모리에 저장했다가 다시 사용하는 방식이라 처리량이 높은 것. 따라서 급작스럽게 종료돼도 재시작하여 처리하면 됨.)고가용성 (한 브로커에 장애가 발생하더라도 복제된 데이터가 나머지 브로커에 저장되어 있어 지속적 데이터 처리 가능)
Kafka의 탄생 배경why? 링크드인에서 소스 어플리케이션과 타깃 어플리케이션 개수가 점점 많아지면서 데이터 전송 라인이 복잡해지는 문제를 해결하기 위해과거 구성도여러 방법을 시도해 보았으나 더 복잡해짐현재 구성도 (카프카)Unified Log라는 중앙 로그를 두어 중앙 집중화 하여 개발자 입장에서도 이전에는 데이터 스토어 백엔드 관리와 백엔드에 따른 포맷, 별도의 앱 개발을 히야 했는데 이젠 카프카에만 데이터를 전달하면 나머지는 필요한 곳 또는 다른 서비스들이 각자 가져갈 수 있어서 자신들 본연의 업무에만 집중할 수 있게 되었다.메시지 큐 구조를 살린 카프카 내부 구조프로듀서가 보낸 데이터 (메시지, 토픽) 는 특정 하나의 파티션에 적재되고, 차례대로 컨슈머는 파티션에서 가져간다 (FIFO)전체적으로..
ansible 구조control node ( = ansible management node ): ansible이 실행되는 노드 (노트북, 서버) / playbook, inventory 파일 등 포함managed node ( = host ): ansible로 관리하는 서버⏏ inventory 파일 정보로 host 정보 가져오고, playbook 파일 정보로 'web' 띄운다.⏏ playbook 하위에서 각 개별 task들이 실행되고, 이 task는 module이라는 코드 형태로 관리된다. 이 module로 host에 실행하는 것.inventory: managed node의 리스트module: ansible이 실행하는 코드 단위task: ansible 작업 단위, module의 모음playbook: vari..