Open source 7

[ Virtualization ] 가상화 개념과 종류 (VM, Hypervisor)

가상화란? 가상화는 서버, 스토리지, 네트워크 및 기타 물리적 시스템에 대한 가상 표현을 생성하는 데 사용할 수 있는 기술이다. 즉, 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술이다. 하이퍼바이저(Hypervisor)는 소프트웨어가 하드웨어에 직접 연결되며 1개의 시스템을 가상 머신(VM)이라는 별도의 고유하고 안전한 환경으로 분할할 수 있다. 이러한 VM은 하이퍼바이저의 기능을 이용하여 가상머신의 리소스를 하드웨어에서 분리할 후 적절하게 배포한다. 또한 하드웨어 가상화를 제공하는 소프트웨어 레이어로, 여러 개의 운영 체제를 동시에 실행하고 격리된 환경에서 작동하도록 한다. 다양한 가상화 엔진이 존재하지만 주로 두가지 유형으로 나뉜다. 최근 가상화 기술의 ..

Open source 2024.03.06

Kafka Consumer 실습 - kafka (6)

이전 블로그에서는 Producer 생성하는 실습을 진행하였는데 이제는 데이터를 받는 입장인 Consumer 관련 내용이다. 환경은 이전과 동일하다. Consumer 생성의 기본적인 코드(Auto Commit = false)는 이미지로 대처하고 (Auto commit = ture)로 설정하는 코드부터 진행하였다. 개인적으로 Consumer에서 공부할 부분이 조금 더 많았던 것 같다. 1. 가장 기본적인 Consumer 2. Auto Commit test configs.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true); package com.tacademy; import org.apache.kafka.clients.consumer.ConsumerConfig; imp..

Open source 2024.03.04

Kafka Producer 실습 - kafka (5)

이전 kafka 이론 정리한 것을 바탕으로 SK planet 토그온 세미나에서 진행했던 실습을 진행해보았다. 역시나 데브원영님의 유튜브를 참고하였다. 실습 시 자신의 PC(mac)에는 IntelliJ 설치, jdk 다운로드가 필요하고, AWS EC2 인스턴스를 하나 생성하기 때문에 미리 AWS 계정 회원가입이 되어있어야한다. EC2 = Kafka Local(mac) = Consumer, Producer 강의 링크: https://www.youtube.com/watch?v=4BbKCsKSq_I&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j&index=17 EC2 카프카 설치 및 실행 인스턴스 생성 : Amazon Linux2, t2.micro 보안그룹 9092 포트 추가 # 다운로..

Open source 2024.03.02

Kafka Consumer & lag 모니터링 - kafka(4)

Kafka Consumer 다른 메시징 플랫폼과 달리 컨슈머가 데이터를 가져가더라도 데이터가 사라지지 않는다. 이 특징은 데이터 파이프라인으로써 좋은 장점을 가지고 있다. Consumer role Topic의 partition으로 부터 데이터를 가져온다. (= polling) Partition offset 위치 기록 (commit) offset: 파티션에 있는 데이터의 번호 Consumer Group을 통해 병렬처리 파티션 개수에 따라 Consumerm을 여러개 만들면 병렬처리가 가능해져 더욱 빠른 속도로 데이터를 처리할 수 있다. 라이브러리 추가 필수 (Producer 에서의 고려사항과 같음) -> 이전 Producer 블로그 참고 Comsumer 생성 코드 예제 자바 프로퍼티 설정을 통해 기본적인 컨..

Open source 2024.02.28

Kafka Broker, Replication, ISR - kafka(3)

Broker, Replication, ISR 1. Broker 카프카가 설치 되어 있는 서버 단위. 보통 3개 이상의 broker로 구성하여 사용하는 것을 권장. 만약 파티션 : 1 , replication : 1 , broker : 3대 일 때, 브로커 3대 중 1대에 해당 토픽의 데이터가 저장됨. 2. Replication : 파티션의 복제 replicaion: 1 → 파티션은 1개만 존재하는 것. replicaion: 2 → 파티션은 원본 1개와 복제본 1개로 총 2개가 존재 replicaion: 3 → 파티션은 원본 1개와 복제본 2개로 총 3개가 존재 다만 브로커 개수에 따라 replication 개수가 제한된다. 브로커 개수가 3이면 replicaion은 4가 될 수 없다. 사용이유: 파티션의..

Open source 2024.02.22

Kafka Producer - kafka(2)

Kafka Producer Producer role Topic에 해당하는 메시지를 생성 특정 Topic으로 데이터를 publish 처리 실패/재시도 Kafka Producer 구조 라이브러리 추가 필수 기본적으로 자바 라이브러리 사용. 라이브러리 관리 도구인 gradle 이나 maven 사용 Producer 코드 예제 자바 프로퍼티 객체를 통해 프로듀서의 설정 정의 부트스트랩 서버 설정을 로컬 호스트의 카프카를 바라보도록 설정 카프카 브로커의 주소목록은 되도록 2개 이상의 ip와 port를 설정하도록 권장 key와 value에 대해 스트링시리얼라이저로 직렬화. (시리얼라이저는 key 혹은 value를 직렬화하기 위해 사용된다. Byte array, String, Integer 시리얼라이즈를 사용할 수 있..

Open source 2024.02.22

Kafka 란? - kafka(1)

이전 프로젝트에서 MSA 서비스 구조를 사용하면서 Kafka를 처음 접하게 되었다. 그 과정에서 Kafka가 가진 비동기 처리 방식과 확장성에 대해 알게 되었는데 점차 실시간 데이터 프로세싱이 중요해지고 있는 현재, kafka를 확실히 이해하고 가는 것이 좋겠다는 생각이 들었다. youtube에서 관련 영상을 찾아 공부하던 중 '데브원영 DVWY' 님의 카프카 강의를 보게 되었는데 이해하기 쉽게 잘 가르쳐주셔서 이를 정리하며 공부를 진행해갔다. kafka 관련 내용은 kafka 이론부터 실습(SK planet 토그온 세미나)까지의 정보이다. 공부 중 개인적으로 좀 더 궁금했던 부분은 추가적으로 내가 찾아서 적은 부분들도 있다. 카프카의 신 데브원영님 감사합니다! Kafka 실시간 스트리밍 데이터를 처리하..

Open source 2024.02.22