전체 글 (79) 썸네일형 리스트형 JPA가 무엇인가요? JPA는 Java Persistence API의 약자로, Java 어플리케이션에서 관계형 데이터베이스의 데이터를 쉽게 관리할 수 있게 해주는 프로그래밍 인터페이스입니다. 이것은 Java EE 표준의 일부이며, 자바 객체와 데이터베이스 테이블 간의 매핑을 담당합니다. JPA는 다음과 같은 기능을 제공합니다.Object Relational Mapping : ORM이라고도 불리며, 객체와 테이블을 매핑해서, 코드 내에서 데이터베이스를 객체처럼 다룰 수 있습니다.Java Persistence Query Language : JPQL이라고도 불리며 SQL과 유사한 문법을 가진 쿼리 언어를 제공합니다.캐시 시능 : 자주 사용되는 데이터를 캐시에 저장하여 성능을 향상시킬 수 있습니다.1차 캐시 : EntityMange.. TCP 통신과 Keep-alive로 통신 효율 최적화: 실무에서 경험한 Connection Timeout 해결 사례 먼저 Keep-alive 에 앞서 TCP 통신부터 보겠습니다. 클라이언트와 서버의 TCP 통신을 하기 위해서는 여러 준비 과정이 필요합니다.Three-way handshakeSlow Start데이터 압축 등Three-way handshake란?Three-way handshake는 TCP 통신을 시작하기 전에 클라이언트와 서버가 통신 가능한 상태인지 확인하는 절차입니다.예를 들어, 구글의 메인 페이지에 접속한다고 생각해봅시다.사용자가 브라우저에 www.google.com을 입력하고 엔터를 누르면 시작됩니다.사용자(클라이언트)는 구글(서버)에게 sync 패킷을 전송합니다.구글은 이를 수신하고 사용자에게 ack 패킷과 함께 자신의 sync 패킷을 전송합니다.사용자는 마지막으로 ack 패킷을 구글에게 보내, T.. JVM 메모리 덤프 생성 및 분석 JVM이 동작하는 프로세스의 메모리 덤프를 생성하는 방법을 살펴보겠습니다.먼저, 현재 실행 중인 JVM 프로세스들을 확인합니다. $ jps -l 여러 프로세스가 있습니다. 다양한 프로세스들이 보이겠지만, 저는 spring-batch 프로젝트에 대한 덤프를 미리 생성해두었습니다.만약 kafka와 같은 다른 프로세스에 대해 덤프를 생성하고자 한다면 다음 명령어를 사용하면 됩니다: $ jmap -dump:format=b,file=/path/file.hprof 2501 여기서 format은 binary를 의미하며, 2501은 프로세스 ID입니다. jmap은 JDK에서 제공하는 유용한 도구입니다. 주의사항 - 덤프를 생성하는 도중에는 성능 저하가 발생할 수 있습니다. - 생성된 덤프 파일의 크기는 JVM이 사용.. 효율적인 데이터 분산 저장 전략: 샤딩과 리밸런싱의 이해 해당 내용은 샤딩에 대한 내용으로 비유적인 설명이 많습니다.이해를 위해서만 봐주시고, 더 궁금하신 내용은 댓글을 남겨주세요. 위에처럼 노트북을 보관해 주는 회사가 있고, 노트북을 1000대 보관할 수 있는 창고가 있습니다. 1. 데이터 분산 저장을 위한 새로운 창고의 추가 (샤딩)보관해야 할 1000대의 노트북이 추가로 들어와서 창고 B를 만들었습니다.창고 A와 B는 모두 노트북이 들어온 순서대로 보관을 하고 있습니다. 만약 고객이 창고에 들어와 노트북을 찾으려면 2000대의 노트북을 하나씩 확인해야만 합니다. 2. 최적화 전략 개발 (샤딩 키 구성)노트북을 찾는 시간이 너무 오래걸려, 시리얼 번호를 기준으로 분류합니다. 시리얼 번호는 한번 정해지면 변경되지 않는 값이므로시리얼 번호가 홀수로 끝나.. Kafka의 고가용성: 장애 대응 및 데이터 손실 방지 Kafka의 안전성과 복구 전략Apache Kafka는 대용량의 실시간 데이터 스트림 처리를 위한 분산 메시징 시스템입니다. Kafka의 안정성과 높은 가용성을 위해 여러 가지 전략과 구성 요소가 사용됩니다. 본 글에서는 Kafka의 주요 안전성 및 복구 전략에 대해 알아보겠습니다. 1. 데이터 복제Kafka는 데이터의 내구성을 보장하기 위해 각 Topic의 파티션을 여러 개의 복제본으로 구성합니다. 각 파티션은 주 브로커(리더)와 여러 팔로워 브로커(복제본)으로 구성됩니다.Producer가 데이터를 전송하면, 해당 데이터는 주 브로커에 저장되고, 주 브로커는 복제본 브로커들에게 데이터를 복제하여 저장합니다. 이렇게 복제된 데이터는 클러스터 내에 여러 브로커에 분산 저장되므로, 하나의 브로커가 장애가 발.. Kafka의 EOS 보장 및 성능 최적화 전략: Producer, Consumer, Broker 설정 1. EOS의 개념과 중요성EOS (Exactly Once Semantics)는 메시지 전송에서 메시지가 한 번만 전송되고 처리되는 것을 보장하는 전송 보증입니다. 다시 말해, 송신자와 수신자 사이에 데이터의 중복 또는 손실 없이 데이터가 한 번만 전송되는 것을 의미합니다. EOS의 중요성:데이터 중복성 제거: 중복된 메시지는 데이터의 무결성을 해칠 수 있습니다. EOS는 이를 방지하여 데이터의 정확성을 보장합니다.데이터 손실 방지: 손실된 메시지는 시스템의 안정성을 위협합니다. EOS는 모든 메시지가 제대로 전달되도록 보장합니다.자원 효율성: 중복 메시지를 처리하는 데 필요한 자원을 절약하여 시스템의 효율성을 높입니다. 2. Kafka에서 EOS를 어떻게 구현하는지Apache Kafka는 0.11.0.. Kafka Streams로 실시간 데이터 분석, Kafka Connect로 데이터 통합 Kafka Streams의 개념 및 특징Kafka Streams은 Kafka 기능 위에 구축된 라이브러리로, 실시간 데이터 스트림을 처리하고 분석하기 위한 간단한 방법을 제공합니다. 그 중 주요 특징은 다음과 같다고 합니다. 분산 처리: Kafka Streams 어플리케이션은 분산시스템으로 쉽게 확장될 수 있습니다.상태 저장: 내부적으로 RocksDB와 같은 내장 상태 저장소를 활용하여 처리 중인 데이터를 유지합니다.탄력성과 내결함성: 어플리케이션 장애나 Kafka 클러스터의 변화에 강하게 설계되어 있습니다. 사실 위에 내용을 읽어봐도 크게 와닿지가 않아서 Kafka와의 차이점을 적어보겠습니다.처리 유형Kafka: 기본적인 메시지 전송과 저장에 초점을 맞춥니다. 메시지를 생성하고, 저장하며, 다른 시스템.. Kafka 아키텍처와 ZooKeeper의 역할: 고가용성 분산 시스템의 설계와 관리 Kafka 아키텍처Apache Kafka는 분산 스트리밍 플랫폼으로, 대용량의 데이터를 처리하고 실시간 데이터 스트리밍을 지원하는데 특화되어 있습니다. Kafka의 아키텍처는 다음과 같은 주요 요소로 구성됩니다. 1. 브로커 (Broker) : 데이터를 저장하고 관리하는 주체데이터를 저장하고 관리하는 주체로서 Kafka 클러스터의 핵심 구성 요소입니다. 브로커는 Topic에 쌓인 데이터를 Partition 단위로 관리하며, 여러 개의 브로커가 클러스터를 형성하여 데이터를 분산하여 처리합니다. 각 브로커는 자신이 관리하는 Topic의 데이터를 저장하고, Consumer에게 데이터를 전달합니다.2. 토픽 (Topic) : 여러 파티션의 집합 (데이터가 보관되는 장소)여러 파티션의 집합으로 데이터가 보관되는 .. 이전 1 ··· 4 5 6 7 8 9 10 다음