카프카
토픽: 토픽(Topic)은 데이터 스트림을 구분하는 개념적인 개체 . 간단히 말하면, 특정 주제나 주제별로 구분되는 데이터의 카테고리
각 토픽은 특정 주제의 데이터에 대한 저장소 역할을 함
토픽에 데이터가 보내지면, 이 토픽을 구독하는 컨슈머가 그 데이터를 읽어서 처리.
퍼블리셔: 데이터를 생성하는 쪽
구독자(컨슈머): 카프카에서 메시지를 수신,처리하는 역할을하는 소프트웨어나 애플리케이션
(카프카 메시지큐 시스템에서 메시지를 소비,처리하는 애플리케이션 또는 컴포넌트)
구독자는 특정 토픽에 등록되어 해당 주제에 전송된(새로운 데이터가 생성되면) 이 메시지를 수신및처리함
(데이터 생산과 소비를 분리해 데이터 생산과 처리를 독립적으로 관리하고 확장가능하게 만드는 패턴)
예를 들어
트위터의 리트윗 이벤트를 구독하는 서비스가 있다면
이 서비스는 카프카의 리트윗 토픽에서 새로운 이벤트가 발생될때마다 해당 데이터를 가져와 알림을 생성한다든가 할수있음
즉
트위터에서 엔드유저가 어떤 트윗을 리트윗하면 이 리트윗 이벤트는 카프카의 리트윗 토픽에 전송되고,
이 토픽을 구독하는 컨슈머(컨슈머서비스)가 이 이벤트 데이터를 수신해서 이에 대한 어떤 작업(이에 대해 필요한 작업)을 또 생성(수행)하게 된다.
예를 들어 이 경우 리트윗 토픽을 구독하는 컨슈머 서비스는 수신된 리트윗 이벤트에 대해 다음과 같은 작업을 수행할 수 있을 것이다.
-해당 트윗의 작성자에게 리트윗 알림을 보내기
-리트윗 수를 업데이트하거나 통계 정보를 업데이트하기
-특정 분석 작업을 위해 데이터를 저장하거나 다른 시스템에 전달하기
-사용자의 타임라인을 업데이트하여 리트윗을 표시하기
반응형