[Flink] Kafka 의 한계점과 그를 보완할 수 있는 Flink
·
Kafka
이번 프로젝트를 마치고 공부하면서 이번 기술 블로그는 Kafka를 알아보면서 튜터님께서 추가로 함께 공부해보기를 추천해주신 Flink라는 기술 스택을 알아보려고한다.그래서 Flink는 어떻게 작동되고 어떤 특징을 갖고 있는지 알아보자 비교군들과 함께 각 기술의 처리 방식을 봐보면 배치 프로세싱과 실시간 처리 방식이 존재하는데 Flink는 이  가지 모두 가능하다. BatchPrcoessing은 실시간이 아닌 일정 주기를 가지고 배치 처리를 통해 수집한 데이터를 DB에 일괄적으로 전달하는 방식이다. 처리량이 많을 경우 이렇게 배치를 사용하는데 처리량이 많기 때문에 처리속도는 늦지만 정확히 전달할 수 있다는 장점이 있다. 반대로 실시간 처리는 객체의 상태변화에 집중하여 실시간으로 변동되고 보여줘야 하는 것들..
[kafka+redisson] 올리브영의 재고관리시스템 분석
·
Kafka
2025.03.18 - [Kafka] - [kafka+redisson] 올리브영의 재고관리시스템 분석 1편 [kafka+redisson] 올리브영의 재고관리시스템 분석 1편올리브영 재고 시스템 분석튜터님에게 발표한 내용을 기반으로 글을 작성하려고 한다. 위 그림은 레거시 서버에서의 올리브영이 겪고 있는 문제이다. 레거시 모놀리딕 서버에 여러 서버가 접근sunro1994.tistory.com  이전 글에 이어 이번에는 Kafka를 활용한 물류 시스템 재고 처리에 대해서 다뤄보려고 한다.Kafka 도입 이유대표적인 메세지 큐는 Kafka, RabbitMQ, Redis Pub/Sub 정도로 알고 있다. 왜 물류 시스템에는 Kafka를 도입했을까? 트래픽 처리Kafka는 RabbitMQ보다 더 많은 트래픽을 처..
[kafka+redisson] 올리브영의 재고관리시스템 분석 1편
·
Kafka
올리브영 재고 시스템 분석튜터님에게 발표한 내용을 기반으로 글을 작성하려고 한다. 위 그림은 레거시 서버에서의 올리브영이 겪고 있는 문제이다. 레거시 모놀리딕 서버에 여러 서버가 접근하여 재고를 파악하기 때문에 트래픽이 몰리는 피크 시간대에 DB에 부담이 전해질 수 있는 상황이다. 이를 해결하기 위한 올리브영의 기존의 시도는 무엇이 있을까? 배치 + 캐시 캐시처리를 통해 RDB까지 접근하지 않아도 인메모리방식으로 빠르게 데이터를 조회할 수 있도록 하고, 쓰기 처리는 배치작업을 통해 일정량을 묶어 주기적으로 처리할 수 있는 방식을 사용한 것으로 보았다.이 방식에서도 분명 한계점은 존재한다. Caching처리는 TTL이 존재하기에 만료시간에는 DB에 다시 접근해야 할 수 있고 DB와 캐시의 정합성또한 고려해..
[Kafka] Consumer 올바르게 사용하기
·
Kafka
Spring-Kafka 에서 카프카 메세지를 수신하기 위해서는 MessageListenrContainer와 Message Listener or @KafkaListenr를 사용하라고 한다. Spring Kafka의 메세지 리스너 소비방식1. 리스너 기반(Listener - based) - @KafkaListener 사용2. Polling 기반(Manually Polling)방식 - KafkaConsumer.poll() 직접 호출우리는 @KafkaListener를 더 일반적으로 사용한다. @KafkaListener를 사용한 메세지 리스너topics = 구독할 Kafka 토픽 지정groupId = "my-group" 으로 컨슈머 그룹을 설정메세지가 수신되면 자동으로 listen() 메서드가 수행된다.@Kafk..