카프카는 이벤트 스트리밍 플랫폼으로 발생하는 이벤트에 대해 실시간으로 처리하고 이를 보장한다.
카프카는 producer와 consumer가 하나의 topic을 publish/subscribe함으로써 이벤트를 발생시키고/처리하는 방식으로 구성된다.
예를 들어 A가 B에게 송금을 하고자한다.
이 때 A는 이벤트를 발생시켜서 이를 'payments'라는 토픽에 게시한다. 토픽이란 이벤트를 저장할 하나의 주제인데, 이를 카프카 브로커에서 메세지 큐 형태로 관리한다. 이 때 이벤트의 내용은 아래와 같다.
1. 이벤트 키 : A
2. 이벤트 값 : A가 B에게 200만원 송금
3. 이벤트 타임스탬프 : 2022-05-03 22:03:20
이 이벤트는 토픽에 쌓이게 되고, 이 토픽을 게시하고 있는 consumer가 해당 이벤트를 처리하게 된다.
https://www.apache.org/dyn/closer.cgi?path=/kafka/3.1.0/kafka_2.13-3.1.0.tgz
위의 카프카 공식 홈페이지에서 tgz 파일을 다운로드 받는다.
위와 같은 명령어로 zookeeper 서버를 실행시킨다.
zookeepers는 분산환경 코디네이터 시스템으로 카프카의 메타데이터와 상태관리등의 목적으로 실행한다.
새로운 커맨드 창을 띄워서 위와 같은 명령어를 입력하면 카프카 서버가 실행된다.
이 카프카 서버에 토픽을 등록하고 이 토픽에 대한 이벤트 관리등을 수행할 것이다.
위와 같은 명령어로 example-events라는 토픽을 생성해보았다.
이처럼 카프카서버 로그에 토픽 생성 로그가 남았다.
위와 같이 kafka producer를 생성해서 example-events라는 토픽에 등록한다. 그리고 임의의 3개의 이벤트를 write했다.
그리고 위와 같이 kafka consumer를 생성해서 example-events의 토픽에 등록하고 --from-beginning 옵션을 주었더니 해당 토픽의 모든 데이터를 받아왔다.
이 경우 producer가 생성했던 3개의 이벤트를 모두 받아왔다.
이와 같은 카프카의 동작을 애플리케이션 서버와 연동해서 운영할 수 있지만 추후에 새로운 게시물에 해당 내용을 자세히 공부하며 정리할 예정이다.
마지막으로 해당 명령어를 입력해서 카프카 환경 등을 삭제한다.