도커(Docker) 설치
- 카프카 클러스터(Kafka Cluster)를 생성하여 그 안에서 카프카 브로커(Broker)를 생성한다.
- 브로커는 각각의 토픽 파티션을 갖게 되며, 분산된 환경에서 카프카를 운용한다.
- 로컬에서 관리하기 어렵기 때문에 도커 내에서 카프카 인스턴스를 생성한다.
- 도커는 컴퓨터 안의 조그마한 버츄얼(Virtual) 컴퓨터라고 생각하면 된다.
- 가상 컴퓨터를 여러가지 만들고 그 안에서 카프카 클러스터를 생성할 것이다.
- 도커를 다운로드한다.
카프카 클러스터(Kafka Cluster) 구축
구축 준비
- 카프카 클러스터를 만들기 위해서는 주키퍼(Zookeeper)가 필요하다.
- 주키퍼를 위한 인스턴스를 하나 만들고, 클러스터링을 위해 주키퍼를 세가지 만들 것이다.
- 세가지의 카프카 브로커들은 하나의 토픽(Topic)을 서빙(Serving)할 것이며, 하나의 토픽은 각각의 인스턴스 안에서 두개의 파티션(Partition)으로 나뉘어 총 여섯가지의 파티션을 이용하여 카프카 클러스터를 만들 것이다.
- 파티션이 여러 개이기 때문에, 리플리케이션 팩터(Replication Factor)도 두 개 정도로 만들어 메세지가 도착했을 때, 다른 파티션으로 넘어갈 수 있게끔 구성할 것이다.
- 앞서 실습했던 서버(Server)를 모두 꺼준다.
1 |
|
주키퍼(Zookeeper) 생성
- 카프카 클러스터를 만들기 위해서 필요한 요소 중 하나인 주키퍼 인스턴스를 만들 것이다.
- 도커 컴포즈(Compose) 설정을 생성하여 그 위에 주키퍼를 띄울 것이다.
1 |
|
- 위처럼 작성한 파일을 실행한다.
1 |
|
- 주키퍼 인스턴스가 전시되며 실행됨을 확인할 수 있다.
브로커(Broker) 생성
- 위 yml파일에 이어서, 세 가지 카프카 인스턴스를 작성하여 도커로 띄운다.
1 |
|
1 |
|
- 도커 컴포즈 작성 후 띄우기 전, 위 명령어를 통해 동작하고 있던 도커 컴포즈를 삭제한다.
1 |
|
- 위 명령어로 실행하면, 주키퍼가 실행되고 카프카 1-3이 실행된다.
- 도커 GUI를 통해 실행되고 있는 것을 확인할 수 있다.
카프드롭(Kafdrop)
- 카프카 브로커의 관리를 좀 더 쉽게 해주는 툴을 알아볼 것이다.
- 카프드롭이라는 오픈 소스 라이브러리이며, 웹 UI를 통해 눈으로 확인할 수 있게 해주는 프로그램이다.
1 |
|
- 이제 카프카 클러스터의 모든 설정이 끝났다.
- 실행시켜보면 모두 정상적으로 실행됨을 확인할 수 있다.
localhost:9000
으로 접속한다.
- 카프드롭의 웹 뷰를 확인할 수 있다.
토픽(Topic) 생성
- 지금까지 주키퍼 인스턴스를 만들고, 카프카 인스턴스 세 개를 띄운 다음, 마지막으로 카프드롭도 인스턴스로 뽑아 만들었다.
- 이렇게 굉장히 작은 버추얼 카프카 클러스터를 구성해보았다.
- 클러스터 안에서 쓸 토픽을 만들어 볼 것이다.
1 |
|
- 위 명령어로 모든 환경을 깔끔히 지우고 새롭게 시작한다.
1 |
|
- 카프카가 백그라운드에서 작동되면 관리가 더욱 쉬워진다.
- 위 명령어를 통해 실행하면 만든 컨테이너가 백그라운드에서 돌아가며, 터미널을 닫더라도 지속적으로 실행이 된다.
1 |
|
- 토픽을 생성하기 위해서는 카프카 인스턴스 안에 들어가서 사용해야한다.
- 위 명령어를 통해 토픽을 생성한다.
- 카프드롭을 통해서도 토픽이 생성됨을 확인할 수 있다.
- 명령어를 통해서도 생성할 수 있지만, 카프드롭을 통해
+ New
버튼을 통해서도 생성하고 삭제도 가능하다.
카프카 클러스터 이용
프로듀서(Producer)
- 만들어진 클러스터를 사용할 수 있는 카프카 프로듀서를 만들어 볼 것이다.
- 새로운 파일을 만들어 코드를 작성한다.
- 여기서 생기는 프로듀서는 브로커 세 가지를 쓸 수 있는 프로듀서이다.
1 |
|
컨슈머(Consumer)
- 클러스터를 쓸 수 있는 컨슈머를 생성한다.
1 |
|
- 두 가지 창을 띄워 프로듀서와 컨슈머를 실행시킨다.
- 위 이미지처럼 컨슈머 동작 중 프로듀서를 실행하면 컨슈머에 전시됨을 확인할 수 있다.
카프드롭에서 메세지를 확인하는 방법
- 토픽을 선택한다.
Total size
에 토픽의 수가 전시되며,View Messages
를 클릭한다.
View Messages
를 클릭하면 입력한 메세지를 확인할 수 있다.- 카프드롭에서는 이렇게 편하게 볼 수 있기에, 관리적인 측면에서 굉장히 좋다.