티스토리 뷰
실전 카프카에 나오는 java 예제 코드로 실습해보기
- 참고한 source code: https://github.com/onlybooks/kafka2/tree/main/chapter3
자바 초보임에 주의....💦
환경
- 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 |
---|