스프링에서 카프카를 효과적으로 사용할 수 있도록 라이브러리를 제공한다. 기본 카프카 클라이언트를 래핑하여 만든 스프링 카프카 라이브러리는 카프카 클라이언트에서 사용하는 여러 가지 패턴을 미리 제공한다.

1. 스프링 카프카 프로듀서


스프링 카프카 프로듀서는 카프카 템플릿이라고 불리는 클래스를 사용한다. 카프카 템플릿은 프로듀서 팩토리라는 클래스를 통해 생성할 수 있다. 이르 통해 기본 혹은 커스텀 카프카 템플릿을 생성할 수 있다.

기본 카프카 템플릿

기본 카프카 템플릿은 yml 파일에 옵션을 넣고 사용할 수 있다. → 그냥 kafkaTemplate 빈으로 등록하면 적용된다.

커스텀 카프카 템플릿

프로듀서 팩토리를 통해 만든 카프카 템플릿 객체를 직접 빈으로 등록하여 사용하는 방식

2. 스프링 카프카 컨슈머


스프링 카프카 컨슈머는 여러개로 세분화 되어있는데 크게 두가지는 다음과 같다.

그리고 다음과 같은 형태로 파생된다.

기본 리스너 컨테이너

@KafkaListener 어노테이션을 붙인 뒤 메서드에 필요한 파라미터 종류를 다르게 하면 다른 카프카 리스너를 만들 수 있다. with yml 설정