본문 바로가기
728x90

AMQP10

Redis 동작 원리 & data structure 1. Redis 는 어떻게 동작할까? : Redis 핵심 서버 엔진은 단일 쓰레드, 논블로킹 이벤트 루프로 동작 ( 클라이언트 요청 → 이벤트 루프 → 명령 실행 → 응답 하는 구조임 - 이벤트 루프란? 1) 클라이언트가 요청을 보냄 → 소켓 이벤트 감지 2) 이벤트 루프가 해당 명령을 싱글 스레드에서 바로 실행 (대부분의 명령은 메모리 연산이므로 바로 처리 가능) 3) 처리 결과를 바로 클라이언트 소켓에 기록 (별도 스레드 없이도 논블로킹 소켓 사용 가능) 4) 이벤트 루프는 다음 이벤트(클라이언트 요청, 타이머, 내부 이벤트 등)로 넘어감 "이러한 구조때문에 rua script 를 최소화 해서 사용 .. 2025. 8. 14.
Kafka DLT 활용해서 재시도 처리 /w Spring Kafka 내에서는 message 처리에 실패한 message 를 저장하는 별도의 topic 이 있다.= DLT 처리 실패한 message 를 Kafka with spring 기능을 활용해서 자동 retry 를 설정할 수 있다. 이는 Transactional outout pattern 의 동작원리와는 다른 구성이다. DLT 의 경우 Kafka 자체의 message 전달 실패에만 사용이가능하다.하나의 예로, consumer 에서 토픽을 받자말자 error 를 return 하게 되면 kafka 는 이를 오류로 인식하고 message 전달의 실패로 간주하게 된다. 하지만 consumer 전달은 잘 받고 consumer 에 연결된 서비스 로직을 수행중에 오류가 나게되면, DLT 로 message 가 저장되지 않.. 2025. 5. 5.
Redis Cluster 설명 앞써 블로그에서는 docker file 기반의 redis를 어떻게 띄우는지를 설명했었다.하지만 실무에서는 이렇게 단일 redis 서버하나 띄워놓고 운용하기에는 리스크가 너무 크다.가장 큰 리스크는 서버 하나가 유일한데 그게 뻗어버리면?관련된 서비스가 마비될 것이다. 따라서, 원활한 서비스를 위해서는 2가지 중 하나를 선택해야 하는데 그중 하나가 Sentinel 이고 다른 하나가 Cluster 구성이다. 1. Sentinel - HA 지원, Master & Slave 의 Replica 구성 가능 - 과반수의 투표체계를 사용하기 때문에 홀수개의 redis를 구성해야한다.(그중 하나가 Master 나머지 두개가 Slave) - Sentinel 구성을 위해서는 기존 redis 와 별도의 추가 구.. 2025. 4. 21.
Valkey 란 무엇일까? valkey 는 redis 와 (거의) 같은거다!!무슨 말일까? Redis 가 라이센스 정책을 오픈 소스를 탈출? 하는것(https://redis.io/blog/redis-adopts-dual-source-available-licensing/)으로 결정 함에 따라 BSD 오픈소스 인 Valkey 에 관심이 쏠리는 것이다. Valkey은 Redis version 7.2.4을 folk 떠서 만든 것이고, redis 와 동일하게 in memory 저장소를 사용하며, caching, MQ, rua script, redis 가 지원하는 자료구조를 동일하게 지원한다. [공식 사이트]https://valkey.io/ ValkeyValkey is an open source (BSD) high-performance ke.. 2025. 3. 7.
KRaft 사용하여 Kafka 컨테이너 띄우기 1. KRaft 란?    : Kafka 의 기존 외부 의존성을 제거하고 Kafka 자체적으로 metadata 를 관리하기 위해 개발 됨     (기존에는 ZooKeeper 서버에 접속하여 관리하는 구조로써, ZooKeeper 를 대신하여 사용)  2. 왜 사용해야 할까?KRaft는 2021년 아파치 Kafka 2.8 버전과 같이 공개되었으며, Apache Kafka 3.7 버전이 Zookeeper 모드를 지원하는 마지막 버전이고, 이후 Kafka 4.0 버전의 경우는 KRaft 모드로만 사용 가능 3. 사용방법     : KRaft 모드를 사용하려면 주키퍼가 필요 없으며, 대신 Kafka의 자체 메타데이터 관리와 컨트롤러가 처리 4. Quorum     : 분산 시스템에서 결정을 내리거나 작업을 수행하.. 2025. 3. 7.
카프카는 어떻게 빠른 속도를 보이는 것인가? ( Kafka Buffer Pool ) 카프카는 어떻게 빠른 속도를 보이는 것인가? 디스크 기반의 저장소를 사용하는 카프카는 메모리 기반의 저장소를 사용하는 레디스보다도 더 좋은 성능을 보인다.(memory 처리속도와 SSD 처리속도는 아래의 그림을 참고하면 된다.) 요약하면 "120 나노 세컨드"와 "50~150의 마이크로 세컨드"의 차이다. (어마어마한 차이인 것이다.)  그럼 카프카는 어떻게 memory 기반의 redis를 MQ로써 사용할 때 보다 더 빠른 성능을 보이는 것인가?그건 바로 저장소는 disk 기반으로 작동하지만, disk 에 저장하기전에 memory buffer poold에 batch 형식을  기반으로 동작한다는 것이다. Producer 에서 메시지 이벤트를 발생시켜, 카프카 브로커로 전달될 때 로직레벨에서 이를 바로 디스.. 2025. 2. 21.
728x90