반응형
오늘 알아볼 기능은 특정 게시물에 대한 '좋아요' 이벤트를 Kafka 토픽으로 전송하는 기능 입니다!
- HTTP POST 요청 처리: /like 엔드포인트로 들어오는 POST 요청을 처리합니다.
- 요청 파라미터 및 바디:
- @RequestParam String postId: 요청 URL에 포함된 postId 파라미터를 받아옵니다.
- @RequestBody String likeEvent: 요청 바디에 포함된 likeEvent 데이터를 받아옵니다.
- Kafka 토픽 구성: postId를 사용하여 동적으로 Kafka 토픽 이름을 생성합니다. 예를 들어, postId가 "123"이라면, 토픽 이름은 "like-topic-123"이 됩니다.
- 메시지 전송: 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 토픽으로 전송되어 다른 시스템 또는 서비스에서 이를 처리할 수 있도록 합니다.