
📖 OpenResty란?OpenResty는"Nginx를 기반으로 확장한 고성능 웹 플랫폼" 입니다.기본은 Nginx입니다.여기에 Lua 스크립트를 실행할 수 있는 환경을 추가해서고성능 웹 서버 + 동적 애플리케이션 서버를 동시에 구현할 수 있게 만든 것입니다.공식 사이트: https://openresty.org/✨ 핵심 특징기반Nginx (특히 nginx core + 모듈들)스크립트Lua (특히 LuaJIT 기반으로 고속 실행)목적API 서버, 웹 서버, 리버스 프록시, API Gateway, WAF 등성능수십만 동시 연결 처리 가능 (Nginx급)확장성Lua를 통해 복잡한 로직을 작성 가능주요 모듈 포함ngx_lua, ngx_http_lua_module, redis, memcached, mysql, ..
📦 StorageClass 설치 방법Kubespray로 쿠버네티스 설치를 완료했지만,아직 기본 StorageClass가 없거나 불완전한 상태이제 동작하는 StorageClass를 추가/설정해야 ArgoCD 같은 것들도 문제없이 설치 가능2. 가장 많이 쓰는 선택지방법설명추천 상황NFS 서버 연결외부에 NFS 서버 띄우고, NFS StorageClass 설치개인 서버, 클라우드 아닌 환경Local Path Provisioner각 노드 로컬 디스크를 스토리지처럼 사용소규모, 실습/테스트Rook-Ceph자체 분산 스토리지 구축 (PVC 자동 프로비저닝)고가용성, 대규모 환경Cloud Provider StorageClassAWS EBS, GCP PD 같은거 사용퍼블릭 클라우드(Kubespray cloud 모드..
✅ Lua로 APISIX 흐름 가로채기 구현 팁항목설명예시1. 요청 바디 읽기ngx.req.get_body_data() 사용local body = ngx.req.get_body_data()2. 비동기 작업 처리ngx.timer.at(0, function) 사용 (non-blocking)ngx.timer.at(0, send_to_kafka, body)3. 외부 HTTP 호출resty.http 모듈 사용local http = require("resty.http")4. HTTP POST 호출httpc:request_uri 로 외부 서버 호출httpc:request_uri("http://server", {method="POST", body=...})5. JSON 직렬화 (Encoding)Lua 테이블을 JSO..

✅ 가로채기 (Interception)란?요청 흐름 가로채기란,원래 클라이언트가 API 서버로 보내는 HTTP 요청을중간에APISIX가 먼저 받고내용을 "가공하거나 따로 복제해서" 다른 데로 보내는 것을 말합니다.→ 원래 목적지로 가는 걸 막거나 수정하는 건 아님.→ "보내면서" 또는 "보내기 전에" 추가 행동을 하는 거예요.방법 1. APISIX 기본 Lua 플러그인 이용 (serverless-pre-function)요청이 들어올 때ngx.req.get_body_data() 같은 걸 써서요청 바디나 헤더를 읽은 다음그걸 Kafka 또는 다른 HTTP 서버로 POST 보내는 Lua 코드 삽입Lua 플로우-- 요청 바디 읽기local body = ngx.req.get_body_data()-- Kafka P..
MongoDB Source Connector는 MongoDB의 데이터를 Kafka로 실시간 스트리밍하는 역할을 합니다.주요 개념:항목 설명역할MongoDB → Kafka 로 데이터 복제 (변경 스트림 기반)방식MongoDB Change Streams 활용패턴CDC(Change Data Capture)제공 형태Confluent MongoDB Source Connector 또는 Debezium MongoDB Connector 등 사용 가능기본 설정 항목 (MongoDB Source Connector)Kafka Connect용 Connector 설정 JSON(or YAML)을 예시로 보여드리겠습니다.{ "name": "mongo-source-connector", "config": { "connecto..
전체 구조MongoDB (Change Streams) ↓Kafka Connect (MongoDB Source Connector) ↓Kafka Topic ↓(필요하면) Kafka Consumer → 다른 시스템🔥 핵심 항목설명MongoDB데이터 변경(CRUD) 발생Change StreamsMongoDB의 변경 이벤트를 실시간 감지Kafka ConnectMongoDB Source Connector를 통해 Kafka로 변경 이벤트를 전송Kafka Broker이벤트를 Topic에 저장Kafka Consumer소비하여 다른 서비스/API/DB로 전파 가능🛠 세팅 방법 정리1. MongoDB 준비버전: MongoDB 4.0 이상 필요Replica Set 또는 Sharded Cluster 구성 필수➔ 단일 ..
Kafka → SMT (레코드 JSON을 외부 API로 POST) → (응답 활용 or 무시) → Kafka/외부 시스템🛠 Java 커스텀 SMT 예제 (POST 방식, JSON 전송)package com.example.connect.transforms;import com.fasterxml.jackson.databind.ObjectMapper;import okhttp3.*;import org.apache.kafka.connect.connector.ConnectRecord;import org.apache.kafka.connect.transforms.Transformation;import org.apache.kafka.connect.data.Struct;import org.apache.kafka.conne..