본문 바로가기

Kafka7

쿠폰 서비스의 쿠폰 발급 단계별 로직 개발 쿠폰 발급 로직 단계별 개발쿠폰 발급하는 로직을 3단계에 나누어 개발을 진행했다.각 단계별로 어떻게 개발을 했고 어떤 특징과 장단점이 있는지 알아보자.단계는 다음과 같다.1. v1 - db를 사용한 기본 구현 방법2. v2 - Redis를 이용한 분산락 방법3. v3 - Kafka를 통한 비동기 처리 방법 1. v1 - db를 사용한 기본 구현db 트랜잭션과 동시요청 처리에 초점을 맞춤쿠폰 정책의 잔여 수량을 확인하고 성공하면 db에 저장하고 실패하면 실패응답을 반환한다.동시성제어를 db 레벨에서만 처리하기 때문에 적절한 lock이 없다.그러므로 트랜잭션내 연산으로 동시성 문제를 최대한 방지하도록 개발함다음은 v1 의 issueCoupon 메서드이다.@Transactionalpublic Coupon is.. 2025. 4. 9.
Kafka와 SSE를 활용한 비동기 처리 이번 게시물에는 알람을 발생 시킬때 일반적으로kafka와 sse 를 사용한 방법이 적절한 방법인지 알아보자Kafka(카프카)란?Kafka는 Apache Software Foundation에서 개발한 오픈 소스 메시지 브로커 프로젝트로, 대용량의 실시간 처리를 가능하게 하는 분산 스트리밍 플랫폼이다. 즉, 분산 스트리밍 플랫폼이란 대량의 데이터를 실시간으로 수집, 처리, 전달하는 시스템을 의미한다. 카프카는 분산 메시징 시스템으로, 대용량 데이터의 비동기 처리에 최적화된 도구이다. 카프카를 사용하면 데이터 생산자(Producer)와 소비자(Consumer) 간의 메시지 교환을 효율적으로 처리할 수 있다. 이를 통해 실시간 데이터 스트리밍이 가능해지며, 시스템 간의 결합도를 낮추고 확장성을 높일 수 있다. .. 2025. 1. 7.
Kafka Stream 이란 Kafka Stream이란?Kafka Streams은 Apache Kafka에서 제공하는 스트림 처리 라이브러리이다.이를 통해 실시간 데이터 스트림(실시간으로 끊임없이 들어오는 데이터의 연속적인 흐름)을 쉽게 처리하고 변환하는 애플리케이션을 작성할 수 있다.Kafka Streams은 Kafka에 저장된 데이터를 처리하거나 데이터를 실시간으로 읽고 쓰는 데 사용되며, 다음과 같은 주요 특징을 갖는다:라이브러리 기반: 별도의 클러스터를 필요로 하지 않고, Java 애플리케이션 내부에 포함되어 실행된다.분산 처리: Kafka의 파티션 구조를 활용하여 확장 가능한 분산 처리가 가능하다.상태 관리: 스트림 처리 중 상태 정보를 저장하기 위해 RocksDB와 같은 내부 스토리지를 활용한다.배치 및 실시간 처리 통합.. 2024. 12. 5.
Kafka 인스턴스 생성 과정 my_first_kafka의 보안 규칙에서인바운드 규칙 편집에서 추가해준다. kafka 의 9092portzookeeper의 2181 port 인스턴스를 연결해서 apt-get을 update한다ubuntu@ip-172-31-0-147:~$ sudo apt-get update ### root로 이동하고 jre를 설치한다.ubuntu@ip-172-31-0-147:~$ sudo suroot@ip-172-31-0-147:/home/ubuntu# apt-get install default-jre ### java 버전을 확인한다.root@ip-172-31-0-147:/home/ubuntu# java -versionopenjdk version "11.0.25" 2024-10-15OpenJDK Runtime Envir.. 2024. 11. 25.
카프카 토픽 삭제할 때 문제 현재 아마 zookeeper와 kafka 만 킨것 같다 커넥트까지 킨지는 모르겠음... 현재 기존에 있던 orders와 my_topic_users 토픽을 삭제하려고한다. /c/Work/Kafka-practice/kafka 위치에서 $ ./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list 명령어로 토픽이름 확인하니까 잘나옴 __consumer_offsets connect-configs connect-offsets connect-status example-catalog-topic my_topic_users orders /c/Work/Kafka-practice/kafka 위치에서 $ ./bin/windows/kafka-topics.ba.. 2022. 9. 6.
카프카 커넥트 실행 오류 [Failed to find any class that implements Connector and which name matches io.confluent.connect.jdbc.JdbcSourceConnector, available connectors are] 주키퍼와 카프카를 실행시키고 카프카 커넥트를 실행시켰는데 이 상태에서 $ ./bin/windows/connect-distributed.bat ./etc/kafka/connect-distributed.properties log4j:WARN No appenders could be found for logger (org.apache.kafka.connect.runtime.WorkerInfo). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 9▒▒ 01, 2022 1:15:35 ▒▒▒▒ org.glassfish.. 2022. 9. 1.