본문 바로가기
Apache/kafka

[Kafka] Kafka 실습(1)

by 잼있는잼니 2023. 3. 20.

순서가 이것부터가 아니지만........


카프카를 설치하고 나서 카프카의 bin 폴더를 보게 되면 아래와 같이 여러 sh파일이 있는 걸 확인할 수 있다.

나는 WSL2의 Ubuntu 20.04.5버전으로 진행했다.

 

 

우선 우리가 카프카를 실행시키기 위해서는 주키퍼를 실행시켜줘야 한다.

 

 

위와 같은 명령어를 치게 되면 주키퍼가 실행이 된다.

여기서, WSL2로 실행하면 생기는 오류가 저 sh파일이 Permission denied가 된다는 것이다.


chmod 777 zookeeper-server-start.sh

 

해결 방법은, 위의 코드로 그 sh파일에 권한을 주어서 해결하였다.

처음화면에서의 초록색은 위의 코드로 권한을 준 파일들이다.

아직 사용하지 않은 sh파일들은 하얀색임을 확인할 수 있다..


이어가서, 주키퍼를 실행하고 나서는, 카프카 서버를 실행해 주면 된다.

 

 

물론, 주키퍼와 카프카 서버를 실행하고 나서 확인을 할 수 있다.

server.properties의 값에 따라 2181 포트에 listen 중 인걸 볼 수 있다.

 

 

netstat -an | grep 2181

 

위 코드를 이용하여 확인할 수 있다.(netstat은 install 해주면 된다.)

 

이제 카프카 서버까지 실행이 되었다면, 카프카 토픽을 만들어 보겠다.

 

토픽을 만들게 되면 Created topic 이 뜨게 되고, 이걸 확인하는 코드가 바로 이어서 있다.

--list는 토픽 리스트를 보여주고, --describe는 토픽을 자세히 보여준다.

 

topic을 만들 때 에러가 발생하였는데, 아래와 같은 에러였다.

 


해결은 server.properties의 listener를 수정했다.

 

 

위의 listeners=PLAINTEXT://:9092를 바꿔도 안 먹혔고,

아래의 advertised.listeners=PLAINTEXT://your.host.name:9092를

advertised.listeners=PLAINTEXT://localhost:9092로 바꾸니 에러가 해결이 되었다.


 

카프카 프로듀서를 만들어 보자. 위의 방식과 같은 방식으로 만들면 된다.

 

 

프로듀서를 만들면 메시지를 보낼 수 있게 된다.

만약, 컨슈머까지 되어있다면, 실시간으로 보내는 메시지를 받을 수 있다.

컨슈머도 같은 방식으로 만들 수 있으며, 프로듀서에서 보낸 메시지가 그대로 오는 것을 확인할 수 있다.

 

 

그리고 컨슈머는 만들 때 특정한 조치를 취하지 않으면, 각각이 유니크한 컨슈머 그룹을 만들게 된다.

어떠한 조치도 취하지 않았을 때의 컨슈머 그룹들은 다음과 같이 이름이 주어진다.

 

 

만약 그룹 이름을 다음과 같이 지정하게 된다면,

 

 

아래와 같이 지정해 준 그룹이름이 리스트로 나오는 것을 확인할 수 있다.

 

 

그리고 주키퍼와 카프카의 서버를 종료할 때는,

카프카 -> 주키퍼 순으로 종료하면 된다.

 

 

다음에 이어서 카프카 실습을 해보겠다.

댓글