전체 글 171

Kafka Consumer Commit Config

개요개념주의점사용 개념Kafka에서 consumer가 데이터를 받았다고 확인하는 용도로 offset을 사용합니다.하지만 auto commit은 예외나 에러가 발생하여 comsume 과정에서 데이터를 못 가져오는 경우, 데이터 유실이 발생할 수 있습니다.따라서 메시지를 읽었다는 offset commit 시기를 직접 조절하여 메시지 유실을 대비할 수 있습니다. (consume과정에서 에러 발생시, offset을 롤백하여 다음에 다시 읽어옵니다.) ❗주의점일반적으로 auto commit을 비활성화하려면 enable.auto.commit=false를 설정하면 된다고 생각하기 쉽습니다.하지만 enable.auto.commit=false를 설정해도 해당 토픽에 lag이 없는 것을 확인할 수 있는데, 이는 Sprin..

카테고리 없음 2024.12.11

No String-argument constructor/factory method to deserialize from String value

개요문제 상황해결 방법설정 방법문제 상황Kafka에서 Json 형식의 데이터를 송수신하는 과정에서 데이터를 보낼 수 없다는 에러가 발생해결 방법Kafka를 사용하여 json의 데이터를 보내는 경우에는 직렬화 형식을 json으로 수정하여야 합니다. ❗중요한 점은 consume과정에서 ErrorHandlingDeserializer를 해주어야 합니다.ErrorHandlingDeserializer을 사용하는 이유consume과정에서 사용자가 정의한 ErrorHandler는 작동하지 않습니다.데이터의 형식이 잘못 들어오면 Kafka가 consume을 무한히 반복합니다.consume과정에서 사용자가 정의한 ErrorHandler는 작동하지 않는 이유kafka의 consume 과정은 아래 4단계를 따릅니다.브로커로부..

BACK END 2024.11.29

인터넷이 끊겼을 경우에 Hikari의 값이 일정하게 유지되는 이유

개요문제 상황HikariCP의 동작 원리예외의 종류해결 방법문제 상황프로세스의 인테넷이 끊어진 경우에 대한 테스트 모니터링 중 hikariCP가 끊어지지 않고 계속 연결 되어 있는 부분 발견에러가 발생한 이유애플리케이션과 서버 간 TCP 연결이 네트워크 중간에서 강제로 종료되고, 이 종료 신호가 클라이언트에 전달되지 않는 경우 발생합니다.이 경우 클라이언트는 여전히 연결이 유지된 것으로 오인하고, 실제 데이터 요청 시 오류가 발생하게 됩니다.문제 상황에서 작성했듯, 이 현상은 개발 서버에서 나온 문제였습니다.이를 해결하기 위한 방법으로는 maxLifetime 시간을 변경해 주시면 됩니다.(기본 30분)참조: https://netmarble.engineering/hikaricp-options-optimiz..

카테고리 없음 2024.11.11

Spring Boot에서 @Transactional의 RollBack

개요문제 상황Transactional Annotation예외의 종류해결 방법문제 상황@Transactional를 사용하여 데이터를 저장하는 과정에서 예외가 발생하여 저장 과정 전체가 RollBack이 되길 원했지만, 예상과는 달리 RollBack이 발생하지 않았습니다.Transactional Annotation찾아보니 @Transactional 과 rollback에 관한 글은 많이 있었습니다.대표적으로 우아한 기술 블로그 에 올라온 글이 있습니다. 감사합니다 구인본 선생님…! 🙇‍♂️결론부터 말하면 기본적으로 예상된 에러는 RollBack을 실행하지 않습니다.이 내용에 대해 설명하기 위해서는 예외의 종류에 대해 알아야 합니다.예외의 종류Error는 개발 외적인 부분에서 발생하는 것으로 대체가 불가능 하..

Redis 설정 및 사용법

Redis개념Redis는 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어입니다. Redis는 다양한 인 메모리 데이터 구조 집합을 제공하므로 다양한 사용자 정의 애플리케이션을 손쉽게 생성할 수 있습니다. 주요 Redis 사용 사례로는 캐싱, 세션 관리, pub/sub 및 순위표를 들 수 있습니다. Redis는 현재 가장 인기 있는 키 값 스토어로서, BSD 라이선스가 있고, 최적화된 C 코드로 작성되었으며, 다양한 개발 언어를 지원합니다. Redis는 REmote DIctionary Server의 약어입니다. - AWS Redis 설명 문서구조Redis는 메모리 기본 기본적으로 싱글스레드 기반으로 요청을 Queue데이터를 저장하는 방식을 위 3개가 있다ReplicationSentinelCluster..

BACK END 2024.10.29

KAFKA 설정 및 사용법

KA개요개념이점사용사례구조사용개념Apache Kafka는 실시간으로 스트리밍 데이터를 수집하고 처리하는 데 최적화된 분산 데이터 스토어입니다. 스트리밍 데이터는 수천 개의 데이터 원본에서 연속적으로 생성되는 데이터로, 보통 데이터 레코드를 동시에 전송합니다. 스트리밍 플랫폼은 이러한 지속적인 데이터 유입을 처리하고 데이터를 순차적이고 점진적으로 처리해야 합니다.Kafka는 사용자에게 세 가지 주요 기능을 제공합니다.레코드 스트림 게시 및 구독레코드가 생성된 순서대로 레코드 스트림을 효과적으로 저장레코드 스트림을 실시간 처리Kafka는 데이터 스트림에 적응하는 실시간 스트리밍 데이터 파이프라인과 애플리케이션을 구축하는 데 주로 사용됩니다. 메시징, 스토리지, 스트림 처리를 결합해 과거 및 실시간 데이터 모..

BACK END 2024.10.29

Ubuntu 20.04에서 Nvidia-Docker 사용하기

Docker에서 GPU를 사용해야 하는 일이 생겼습니다.하지만 기본적으로 docker에서는 gpu를 사용할 수 없습니다.docker에서는 gpu를 사용하기 위해선 그냥 docker가 아닌, nvidia-dokcer를 사용하여야 합니다. 이글은 다음 순서로 작성하였습니다.1) ubuntu에서 nvidia-driver 설치2) nvidia-docker 설치 및 설정 1. Nvidia Driver 설치CARLA는 기본적으로 GPU를 사용합니다. 이를 위해 ubuntu에 nvidia driver를 설치하여 세팅해주어야 합니다. 아래 명령어를 사용하여 apt update와 upgrade를 합니다. (*upgrade는 설치한 직후에만 합니다.) sudo apt update && sudo apt upgrade sud..

개발일지/docker 2024.05.11