티스토리 뷰

실전 카프카에 나오는 java 예제 코드로 실습해보기

자바 초보임에 주의....💦

환경

  • IDE: IntlliJ
  • Java 11.0.18
  • Kakfa 2.7.0

인텔리제이에서 개발 환경 구성하기

일단 프로젝트를 새로 생성하고 Build System을 Maven으로 설정한다.

Create를 누르면 pom.xml이 함께 생성된 것을 확인할 수 있는데, 해당 파일을 소스 코드의 pom.xml 파일로 변경해준다.

참고로, 업로드된 pom.xml 파일 그대로 실행하려니 java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory 에러가 발생해서 dependency를 아래의 dependency도 같이 추가해주었다.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>

그리고 kafka jdk는 pom.xml 파일에 있는 링크에서 다운로드 받아 File > Project Structure > Modules > Add Jar or Directories로 설치해준다.

그리고 pom.xml 파일에서 우클릭 > Maven > Reload Project를 하고 External Libaries를 확인하면 필요한 라이브러리들이 설치된 것을 확인할 수 있다.

그리고 main > java 경로에 테스트하고 싶은 클래스를 생성해준다. 상단에 첨부한 Repository에 파일이 모두 있기 때문에 이 부분의 자세한 내용은 생략한다.

참고로 나는 docker-compose로 zookeeper 3개, kafka 3개를 띄워서 실습을 해보고 있기 때문에
props.put("bootstrap.servers", "localhost:29092, localhost:39092, localhost:49092");
이 부분과 topic name만 수정해주었다.

Produce 확인

토픽을 생성했던 kafka 서버에서 kafka-console-consumer --bootstrap-server kafka-1:9092 --topic my-topic로 데이터가 잘 들어왔는지 확인할 수 있었다.

만약 consumer를 실행하지 않은 상태였다면 위의 명령어에서 --from-beginning만 끝에 붙여주면 전체 메시지를 확인할 수 있다.

'Java' 카테고리의 다른 글

[Java의 정석] 6. 객체 지향 언어  (0) 2023.04.06
댓글