카테고리 없음

카프카 토픽 으로 데이터 전송 예시

jw-backend 2024. 7. 1. 19:45
반응형

 오늘 알아볼 기능은 특정 게시물에 대한 '좋아요' 이벤트를 Kafka 토픽으로 전송하는 기능 입니다!

  1. HTTP POST 요청 처리: /like 엔드포인트로 들어오는 POST 요청을 처리합니다.
  2. 요청 파라미터 및 바디:
    • @RequestParam String postId: 요청 URL에 포함된 postId 파라미터를 받아옵니다.
    • @RequestBody String likeEvent: 요청 바디에 포함된 likeEvent 데이터를 받아옵니다.
  3. Kafka 토픽 구성: postId를 사용하여 동적으로 Kafka 토픽 이름을 생성합니다. 예를 들어, postId가 "123"이라면, 토픽 이름은 "like-topic-123"이 됩니다.
  4. 메시지 전송: kafkaTemplate.send(topic, likeEvent)를 호출하여 생성된 토픽에 likeEvent 메시지를 전송합니다.

다음은 코드의 전체 예시입니다:

java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LikeController {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @PostMapping("/like/{postId}")
    public void like(@PathVariable String postId, @RequestBody String likeEvent) {
        String topic = "like-topic-" + postId;
        kafkaTemplate.send(topic, likeEvent);
    }
}

이렇게 하면 특정 게시물에 대한 '좋아요' 이벤트가 발생할 때마다, 해당 이벤트가 Kafka 토픽으로 전송되어 다른 시스템 또는 서비스에서 이를 처리할 수 있도록 합니다.