728x90 반응형 Backend45 [kafka] kafka 디자인 특징 카프카 디자인 특징1. 분산 시스템분산 시스템은 네트워크로 이루어진 컴퓨터들의 그룹으로서 시스템 전체가 공통의 목표를 가지고 있습니다.같은 역할을 하는 여러대의 서버로 이루어진 서버그룹을 분산 시스템이라고 합니다.=> 단일 시스템보다 더 높은 성능을 얻을 수 있다.=> 분산 시스템 중 하나의 서버 또는 노드 등이 장애가 발생하면 다른 서버 또는 노드가 대신 처리한다.=> 시스템 확장이 용이하다2. 페이지 캐시카프카는 처리량을 높이기 위해 페이지 캐시를 이용합니다.OS는 물리적 메모리에 애플리케이션이 사용하는 부분을 할당하고 남은 잔여 메모리 일부를 페이지 캐시로 유지해 OS의 전체적인 성능 향상을 높이게 됩니다.이러한 잔여 메모리를 이용해 디스크에 읽고 쓰기를 하지않고, 페이지 캐시를 통해 읽고 쓰는 방.. 2025. 4. 1. [kafka] 카프카 관리를 위한 주키퍼 아파치 산하 프로젝트인 하둡, 나이파이, 에이치베이스, 스톰 등 많은 애플리케이션이 부하 분산 및 확장이 용이한 분산 애플리케이션으로 개발되고 있습니다.이러한 분산 애플리케이션을 사용하게 되면, 분산 애플리케이션 관리를 위한 안정적인 코디네이션 애플리케이션이 추가로 필요하게 됩니다.주키퍼(Zookeper)주키퍼는 본래 하둡의 서브 프로젝트 중 하나였습니다.대용량 분산 처리 애플리케이션인 하둡은 중앙에서 분산 애플리케이션을 관리하는 코디네이션 애플리케이션이 필요했기 때문에, 서브 프로젝트로서 주키퍼 개발 작업을 진행했었습니다.후에 , 탑 레벨 프로젝트로 승격되었고, 현재는 아파치 카프카 뿐만 아니라 여러 분산 애플리케이션에서 사용되고 있습니다.주키퍼란?분산 애플리케이션을 위한 코디네이션 시스템입니다.분산 .. 2025. 4. 1. [Kafka] 카프카의 동작 방식과 원리 # 카프카 동작방식카프카는 기본적으로 메시징 서버로 동작합니다. 메시지 단위를 보내는 측 (퍼블리셔 또는 프로듀서)에서 카프카에 토픽이라는 각각의 메세지 저장소에 저장하면서, 가져가는 측(서브스크라이버subscriber, consumer컨슈머)이 원하는 토픽에서 데이터를 가져가게 되어있습니다. 중앙에 메시징 서버를 두고 이렇게 메세지를 보내고 받는 형태의 통식을 펍/섭(pub/sub) 모델이라고 합니다. 프로듀서가 메시지를 컨슈머에게 직접 전달하는 게 아니라 중간의 메시징 시스템에 전달합니다. 이때 메시지 데이터와 수신처 ID를 포함시킵니다. 메세징 시스템의 교환기가 메시지의 수신처 ID 를 포함시킵니다. 메시징 시스템의 교환기가 메시지의 수신처 아이디 값을 확인한 다음 컴슈머들의 큐에 전달합니다. 컨슈.. 2025. 4. 1. [Backend] Kafka 명령어 Kafka 서버에서 로그 확인 및 주요 운영 명령어를 정리했습니다.Kafka를 운영 및 디버깅할 때 필요한 모든 명령어를 포함합니다.1. Kafka 서버 상태 확인먼저, Kafka가 정상적으로 실행 중인지 확인해야 합니다.1.1 Docker 컨테이너 상태 확인Kafka 및 Zookeeper가 실행 중인지 확인:docker ps -aKafka와 Zookeeper가 실행 중이어야 합니다.Kafka 컨테이너가 kafka라는 이름으로 실행 중이라면, 다음 명령어로 컨테이너 내부로 진입할 수 있습니다.docker exec -it kafka bash2. Kafka 로그 확인Kafka의 실행 로그를 확인하려면 다음 명령어를 사용합니다.2.1 Docker 컨테이너 로그 확인Kafka 컨테이너의 최신 로그를 확인:doc.. 2025. 3. 15. [Backend] kafka - Spring Boot 프로젝트 설정하기 Kafka와 연결하기 위해 spring-kafka를 추가해야 합니다.1) Gradle (build.gradle.kts)dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.kafka:spring-kafka") implementation("org.springframework.boot:spring-boot-starter-data-jpa")} 2) application.yml 파일spring: kafka: bootstrap-servers: localhost:9092 consumer: group-id: product-g.. 2025. 3. 13. [Backend] kafka 알아보기 일단 kafka를 적용해보기에 앞서 kafka에 대해 자세히 알아보겠ㅅ븐디ㅏ.1. Kafka 기본 개념Kafka의 구조와 동작 방식을 먼저 이해하는 것이 중요합니다.1) Kafka란?분산 메시징 시스템으로 대량의 데이터를 비동기적으로 처리하는 데 사용실시간 데이터 스트리밍, 로그 수집, 이벤트 처리에 강점주요 용도:비동기 데이터 처리 (이벤트 기반 아키텍처)마이크로서비스 간 메시지 큐 역할로그 수집 및 분석IoT, 실시간 모니터링2) Kafka 아키텍처Producer: 메시지를 Kafka로 전송하는 역할 (ex: 크롤링 서버)Broker: 메시지를 저장하고 Consumer에게 전달하는 중간 매개체 (Kafka 서버)Topic: 데이터가 저장되는 공간 (메시지를 그룹핑)Partition: Topic을 쪼개.. 2025. 3. 13. [Backend] Kafka 설정하기 - Docker container 만들기 Ec2서버에 Docker compose를 이용하여 kafka를 설정해보겠습니다. 1 . Docker-Compose.yml 파일 설정우선적으로 ec2서버에 docker가 존재하지 않는다면 아래의 포스트를 참고하여 설정해주세요,2025.03.13 - [가상화/docker] - [Docker] EC2서버에 Docker, Docker-Compose 설치 [Docker] EC2서버에 Docker, Docker-Compose 설치첫번째로 EC2 서버에 Docker를 설치 해보겠습니다.1. EC2 서버에서 Docker 설치 sudo dnf update sudo dnf install -y docker sudo systemctl enable docker sudo systemctl start docker 2. Docker.. 2025. 3. 13. [JWT] jwt란 무엇인가? JWT란 무엇인가?JWT는 JSON Web Token의 약자로, 두 시스템 간에 정보를 안전하게 전송하기 위해 사용되는 토큰 기반 인증 방식입니다. 예를 들어, 클라이언트와 서버 간에 인증 정보나 사용자 상태를 유지하고 싶을 때 JWT를 활용합니다. JWT의 구조JWT는 세 부분으로 구성됩니다:Header (헤더): 토큰의 타입과 해싱 알고리즘 정보를 담고 있습니다. 보통 'alg' (알고리즘)와 'typ' (타입)이라는 두 가지 속성이 포함되며, 예를 들어, {"alg": "HS256", "typ": "JWT"} 형태입니다.Payload (페이로드): 주로 사용자 정보나 데이터(claims)를 포함하는 부분입니다. 여기에는 사용자 ID, 역할, 토큰 만료 시간 등의 정보가 담겨 있습니다.Signatu.. 2025. 2. 26. [JAVA] SOLID 원칙 S.O.L.I.D 원칙이란? 로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙입니다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침입니다. 사전 기반 지식객체지향 프로그래밍의 기본 개념 (클래스, 객체, 상속, 다형성 등)Java에서 인터페이스와 상속 사용 방법접근 제한자, 메서드 오버라이딩, 클래스 간 관계 등의 기본 개념 단일 책임 원칙(Single Responsibility Priciple, SRP)- 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란 클래스가 변경되어야 하는 이유가 하나뿐이어야 한.. 2025. 1. 16. [디자인 패턴] 전략 패턴 [Strategy Pattern] 전략 패턴 (Strategy Pattern) 전략 패턴(Strategy Pattern)은 행동(알고리즘)을 캡슐화하여 동적으로 변경하거나 선택할 수 있도록 도와주는 디자인 패턴입니다. 객체의 행동을 별도의 클래스로 분리하여 실행 중에 행동을 교체할 수 있게 합니다. 이 패턴은 개방-폐쇄 원칙(Open/Closed Principle)을 따르며, 코드를 확장하기 쉽게 설계할 수 있습니다. 전략 패턴의 구성 요소 Context (문맥 클래스): 클라이언트가 사용하는 클래스이며, 특정 전략(알고리즘)을 사용하는 역할을 합니다. 전략 객체를 주입받아 사용하며, 주입된 전략에 따라 동작이 결정됩니다. Strategy (전략 인터페이스): 공통 인터페이스로, 다양한 전략들이.. 2025. 1. 16. 이전 1 2 3 4 5 다음 more 728x90 반응형