윈도우(Windows)에서 카프카(Kafka) 클러스터 간단 테스트하기 (fault-tolerant)
지난 번에 구성한 카프카 클러스터(cluster)가 잘 동작하고 있는 지 테스트 하겠습니다. Zookeeper 1, Kafka broker 3이 동작 중이여야 합니다.
- PowerShell을 열어서 새로운 토픽을 생성합니다. .\bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 3 --topic test-cluster
* 카프카 브로커 3대가 같은 메세지를 복제해서 가지고 있게 됩니다. (replication-factor 옵션)
* 원래는 다른 것을 보여 드리려고 했는데 윈도우라서 그런건지 싱글머신에 3개의 프로세스를 띄어서 그런건지 예전에 리눅스에서 잘 되던게 이 환경에서는 안되네요. 역시 결론은 카프카는 윈도우에서 돌리지 말자입니다ㅠ 향후 리눅스, Docker, Kubernetes에서 카프카를 돌리는 것을 포스팅 할 것입니다.
- 토픽이 잘 만들어졌는지 확인합니다. .\bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092
- 토픽에 대해 자세한 정보를 보여주는 describe 옵션을 사용해보겠습니다. .\bin\windows\kafka-topics.bat --describe --bootstrap-server localhost:9092
- test-cluster에 메세지를 넣겠습니다. .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test-cluster
- Ctrl +C로 나온 뒤 메세지를 받아보겠습니다. .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-cluster --from-beginning
* 혹시 이 부분이 헷갈리시면 예전 포스트들을 참고해 주세요.
- 0번 브로커를 죽여보겠습니다. server.properties로 실행시킨 창을 찾아서 Ctrl+ C로 종료시킵니다. 그럼 1번, 2번 브로커만 살아있게 됩니다.
- 다시 토픽을 확인해보겠습니다. .\bin\windows\kafka-topics.bat --describe --bootstrap-server localhost:9093 --topic test-cluster
* 9092포트를 사용하는 0번 브로커가 다운돼서 9093번이나 9094번 포트로 연결해야합니다. 그림을 보시면 리더가 2번 브로커로 바뀌었고 Isr 리스트에 있던 0번 서버가 사라졌습니다.
- 0번 서버를 재기동하고 다시 토픽을 확인하면 0번이 다시 리더는 못되었지만 Isr 리스트에 추가 된 것을 볼 수 있습니다. 리더였던 0번 서버가 죽어도 1번,2번 서버가 데이터를 가지고 있기 때문에 데이터는 사라지지 않습니다. 그리고 0번 서버가 죽었을 때 클러스터에 데이터를 넣어도 0번 서버가 살아나면 그 데이터를 복제해서 가지고 있습니다.
- 파워쉘 2개를 나란히 띄우고 producer와 consumer 스크립트를 실행 한 뒤 0번 9092서버에서 실시간 메세지를 보내고 1번 9093서버에서 실시간 받는 것을 확인하고 1번 9093서버에서 보낸 것을 2번 9094서버에서 받게 하는 등의 테스트도 해볼 수 있습니다.
* 원래는 다른 것을 보여 드리려고 했는데 윈도우라서 그런건지 싱글머신에 3개의 프로세스를 띄어서 그런건지 예전에 리눅스에서 잘 되던게 이 환경에서는 안되네요. 역시 결론은 카프카는 윈도우에서 돌리지 말자입니다ㅠ 향후 리눅스, Docker, Kubernetes에서 카프카를 돌리는 것을 포스팅 할 것입니다.
Comments
Post a Comment