실전 카프카 - 11장 카프카 커넥트
·
DataPipeline/Kafka
핵심 개념소스 커넥트데이터 소스와 카프카 사이에서 프로듀서 역할을 합니다. 싱크 커넥트카프카와 타겟시스템 사이에서 컨슈머 역할을 합니다.  내부 동작Partitioning (파티셔닝)커넥터에 복사되어야 하는 데이터들은 레코드 순서에 맞추어 파티셔닝 됩니다.커넥트에서 나눈 파티션은 카프카 파티션과 용어만 같을 뿐입니다. Tasks (태스크)커넥터가 병렬로 실행될 수 있도록 여러 태스크(Task)로 나뉩니다. 커넥터가 여러 태스크로 분할되면 병렬 작업을 통해 성능을 개선할 수 있습니다. Topic (토픽)태스크들은 다수의 토픽으로 전송됩니다. Connect Converter (커넥트 컨버터 )소스 -> 카프카로 전달할 때 직렬화(serialization)카프카 -> 싱크로 전달할 때 역직렬화(deserial..
Redis - Queue
·
Storage/Redis
QUEUERedis는 큐(queue) 자료 구조를 쉽게 구현할 수 있는 기능을 제공합니다. 일반적으로 Redis 큐는 리스트(list) 자료형을 사용하며, 비동기 메시징을 생산자(producer)와 소비자(consumer)정의하여 사용할 수 있습니다. LPUSH, RPOP, LRANGE# 한글 데이터를 보기 위해 --raw 옵션으로 cli 접속redis-cli --raw# 순서대로 데이터 pushLPUSH my_list '태스크1'LPUSH my_list '태스크2'LPUSH my_list '태스크3'# list 타입인 key생성 확인keys *>> "my_list"# list 타입의 데이터 확인LRANGE my_list 0 -1>>>태스크3태스크2태스크1# 데이터 popRPOP my_list>>> 태스..
실전 카프카 - 10장 스키마 레지스트리
·
DataPipeline/Kafka
[ 스키마의 개념 ]카프카에서는 토픽으로 전송되는 메세지에 대해 미리 형식을 정의한 후 전송함으로써DB 스키마와 같은 효과를 얻을 수 있습니다.  스키마를 통해 데이터를 consume하는 여러 부서가 있다면스키마를 통해 데이터에 대한 정확한 정의 및 데이터 변경여부를 알려 줄 수 있습니다. 또한 데이터 형식을 벗어난 데이터 필드에 대해 미리 파악 할 수 있습니다.  [ 스키마 레지스트리 ]카프카에서 스키마를 활용하는 방법은 스키마 레지스트리라는를 애플리케이션을 이용하는 것 입니다.아키텍처스키마 레지스트리는 카프카와 별도로 구성된 독립적인 애플리케이션으로,프로듀서 / 컨슈머와 직접 통신합니다.  [ 에이프로(Avro) 포맷 ]스키마 레지스트리가 지원하는 대표적인 데이터 포맷은 에이브로(Avro)이며데이터 ..
RDBMS - Mysql Partitioning 파티셔닝
·
Storage/RDBMS
[ 개요 ]MySQL Partitioning은 큰 테이블을 논리적으로 작은 단위(파티션)로 나누어 관리하는 기술입니다. 테이블 데이터를 파티션 단위로 나누어 저장하여 데이터 처리 성능을 개선하고, 특정 쿼리를 최적화할 수 있습니다. [ 장단점 ] 장점성능 향상 :데이터가 파티션 단위로 분리되어 저장되므로 특정 파티션에만 접근하는 쿼리의 성능이 향상됩니다.특히, 읽기 작업(SELECT)에 유리하며, 대규모 데이터에서 효율적입니다. 관리 용이성 :특정 파티션만 드롭하거나 백업 및 복원할 수 있습니다. 병렬 처리 :MySQL은 파티션을 병렬로 처리하므로, 대규모 데이터를 효과적으로 처리할 수 있습니다. 단점제약 사항 :외래 키(Foreign Key) 사용 불가합니다.파티션 키가 반드시 Primary Key 또..
Ansible - 조건적 실행 ( handler, when )
·
Infra/Ansible
[ Handler ]핸들러는 notify에 의해 호출되며 주로 서비스 재시작, 캐시클리어 등 후속 작업을 처리합니다.별로의 handler 폴더에 정의되어 실행할 수 있습니다.핸들러는 플레이북 실행 종료 시점에 호출됩니다.동일한 핸들러가 여러 태스크에서 호출되더라도 한번만 실행합니다.실행 순서는 notify에 나열된 순서가아니라 handler에 선언된 순서로 실행됩니다. [ Handler Example ]tasks:- name: Template configuration file ansible.builtin.template: src: template.j2 dest: /etc/foo.conf notify: - Restart apache - Restart memcachedhandlers..
실전 카프카 - 6장 컨슈머 동작원리와 구현
·
DataPipeline/Kafka
[ 컨슈머 오프셋 관리 ]- 컨슈머의 동작 중 핵심은 오프셋 관리 ( 컨슈머가 메세지를 어디까지 읽었는지 )- 컨슈머들은 지정된 토픽의 메세지를 읽은 뒤, 오프셋 정보를 _consumer_offests 파일에 기록합니다.- 컨슈머 그룹에서 컨슈머의 변경이 발생하면 _consumer_offests 통해 읽은 위치를 추적할 수 있습니다. [ 그룹 코디네이터 ]- 안정적인 컨슈머 그룹 관리를 위해 별도의 코디네이터가 존재합니다.- 컨슈머 그룹이 구독한 토픽들을 트래킹하여, 작업을 균등하게 재분해하기 위해 리벨런싱 동작을 수행합니다.( 새로운 컨슈머가 그룹 내에 추가되거나 삭제되는 멤버에 변화가 생기면 수행 )- 컨슈머들의 변경을 가지하기 위해 그룹 코디네이터와 컨슈머들은 서로 하트비트를 주고 받습니다.컨슈머 ..
실전 카프카 - 5장 프로듀서 동작원리와 구현
·
DataPipeline/Kafka
[ 파티셔너 ]피텨셔너는 프로듀서가 토픽으로 메세지를 보낼 때, 토픽의 어느 파티션으로 메세지를 보내야 할지를 결정합니다.메세지 키를 해시처리해 파티션을 구하는 방식을 결정합니다. 라운드로빈 전략별도의 메세지 키가 지정되지 않으면 라운드로빈 알고리즘을 활용해 토픽의 파티션들로 랜덤 전송합니다.producer로 전송을 위한 파티션별 최소 레코드 수 기준(batch size)을 채우지 못한 경우,프로듀서의 버퍼 메모리 영역에서 대기가 길어질 수 있습니다. 스티키 파티셔닝 전략 카프카 2.4버전 이후로 이를 위해 스티키 파티셔닝 전략을 사용하게 됩니다.배치 전송을 위한 필요 레코드수를 하나의 파티션에 먼저 채워서 빠르게 배치 전송하는 전략입니다.P1, P2 .. 는 batch.size이고 P1 + P2 .. ..
Ansible - Inventory Build
·
Infra/Ansible
Invertory BasicsAnsible Inventory는 관리할 시스템 및 장비 목록을 정의한 파일입니다.이 파일을 통해 Ansible은 특정 호스트에 작업을 실행할 수 있습니다.기본적으로는 INI 또는 YAML 형식의 정적 파일을 사용하며, 동적 인벤토리도 지원합니다. hosts formatmail.example.com[webservers]foo.example.combar.example.com[dbservers]one.example.comtwo.example.comthree.example.comhosts.yaml formatungrouped: hosts: mail.example.com:webservers: hosts: foo.example.com: bar.example.com:..
wave35
아그거뭐였지?