MSA 프로젝트를 연습해보면서 kafka를 적용하는 강의를 들었다.
Kafka는 Apache Software Foundation의 Scalar 언어로 된 오픈소스 메시지 브로커 프로젝트이다. Linked-in에서 개발되어, 2011년 오픈소스화 되었다. 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공한다.
카프카와 같은 메시지 큐잉 시스템을 통해 복잡했던 데이터 전송 방식을 카프카 하나로 묶어 전달 할 수 있게 되었다.
powershell에서 zookeeper 실행 후 서버를 실행하고 테스트를 진행한다.
Zookeeper 실행
.\zookeeper-server-start.bat ....\config\zookeeper.properties
Server 실행
.\kafka-server-start.bat ....\config\server.properties
Topic 등록
.\kafka-topics.bat --bootstrap-server localhost:9092 --create --topic [topic이름]
Producer 등록
.\kafka-console-producer.bat --broker-list localhost:9092 --topic [topic이름]
Consumer 등록
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic [topic이름] --from-beginning
여기서 from-beginning은 consumer 연결 시 producer의 지난 모든 메시지를 모두 받아온다.
Producer와 Consumer는 직접적인 관련이 없다.
Producer는 topic에 메시지를 전달하고 Consumer는 topic에 저장된 메시지를 받아오는 것 뿐이다. Consumer가 여러개가 되더라도 topic에서 메시지를 받아오기 때문에 producer에서 입력된 메시지를 동시에 받아올 수 있다.