✅ Kafka REST API 종류별 비교종류이름역활 Kafka or Kafka Connect 1. Confluent Kafka REST Proxykafka-restKafka Producer/Consumer 역할을 HTTP API로 제공Kafka 핸들링2. Kafka Connect REST API내장 REST API (/connectors, /tasks, 등)Kafka Connect 설정 및 관리Kafka Connect 핸들링3. Kafka Connect with REST Source Connectorhttp-source-connector 등외부 API → Kafka로 메시지 수집Kafka Connect에서 Kafka 핸들링🔍 상세 설명1. Kafka REST Proxy (Confluent 제공)Kaf..
📖 용어 정리항목설명APISIX Lua 변환API 요청이 APISIX에 도착했을 때 Lua 코드로 JSON/데이터를 변환Kafka Connect SMT 변환Kafka Connect가 Kafka Topic에 적재할 때 (또는 읽을 때) 데이터 포맷을 변환하는 플러그인 기능🧠 변환 위치 기준위치설명APISIX (Ingress)요청(Request)이 Backend로 가기 전에 변환Kafka Connect (ETL/Stream)Kafka에 저장되거나 Kafka로부터 읽을 때 변환 (중간 처리)즉, APISIX는 앞단에서 처리, Kafka Connect는 뒷단에서 처리합니다.✅ 장단점 비교항목APISIX Lua 변환 Kafka Connect SMT 변환처리 시점요청 수신 시 (HTTP 수신 시 즉시 변환)Ka..
OpenFaaS 함수를 JavaScript(Node.js) 로 작성해서,MongoDB REST Proxy (예: RESTHeart) 를 통해HTTP 요청으로 MongoDB 조회하는 예시.🛠️ OpenFaaS + JavaScript 함수 예시handler.js"use strict"const fetch = require('node-fetch'); // 외부 HTTP 호출용 라이브러리module.exports = async (event, context) => { const MONGO_PROXY_URL = "http://restheart.mongodb.svc.cluster.local:8080/mydb/mycollection"; try { const response = await fet..
항목 Hook Triger기본 의미"어디에 걸어두는 것""어떤 조건이 되면 실행시키는 것"누가 호출?외부 시스템/내부 시스템이 알아서 호출 (콜백 느낌)조건 만족되면 시스템이 자동 실행제어 방식수동 또는 외부 이벤트에 반응조건 기반 자동 실행사용 위치 예시- 코드 레벨 (ex: 함수 호출 시 beforeSave, afterSave 등)- API Gateway (ex: 요청 가로채기 Hook)- DB (ex: Insert Trigger, Update Trigger)- Kafka Connect (ex: Connector trigger by poll)목적흐름을 "중간에 가로채거나" "덧붙여 실행"특정 이벤트 발생시 "자동 반응"동작 방식"이 타이밍에 이 함수 끼워넣어" 느낌"이 조건 생기면 이 작업 수행" 느..

📖 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, ..

✅ 가로채기 (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..
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..
📄 Kafka Connect 기반 Base64 이미지 자동 저장 설계1. 개요Kafka 프로듀서로 전송되는 Base64 인코딩된 이미지 데이터를Kafka Connect 환경에서 자동 디코딩하여,파일명 기준으로 지정된 폴더에 저장하는 기능을 구현한다.✅ 목표:Kafka 메시지 수신 → Base64 디코딩 → 파일명으로 폴더 저장장애 발생 시에도 운영 중단 없이 계속 처리2. 아키텍처 흐름[Kafka Producer] ↓ (topic: images-topic)[Kafka Connect - Custom SinkConnector] ↓ (Base64 디코딩 + 파일 저장)[Filesystem 저장 (예: /tmp/decoded_images)]Producer: filename, image 필드 포함한 ..
🧾 curl 주요 옵션 정리📡 1. 기본 요청curl http://example.com기본 GET 요청을 보냄🔁 2. HTTP 메서드 지정curl -X POST http://example.comcurl -X PUT http://example.com-X를 이용해 HTTP 메서드 설정📤 3. 데이터 전송 (POST/PUT 등)curl -d "key=value&key2=value2" http://example.comcurl -d '{"json":"data"}' -H "Content-Type: application/json" http://example.com-d: 데이터 전송-H: 헤더 설정🧾 4. 헤더 추가curl -H "Authorization: Bearer token" http://example...
✅ APISIX로 Java Spring Boot API Gateway 대체항목 Spring Cloud Gateway Apache APISIX💡 목적Java 기반 API Gateway고성능 Nginx 기반 API Gateway🔄 라우팅Java 코드/설정으로 제어CRD(YAML) 또는 Admin API로 제어🚀 성능Java 서버 기반 → 높은 리소스 사용Nginx 기반 → 매우 가볍고 빠름🔒 인증/보안JWT, OAuth2 지원 (Spring Security 필요)JWT, OAuth2, IP 필터 등 내장 플러그인📊 모니터링Actuator 기반Prometheus, Grafana 연동 플러그인🧱 확장성Java 코드 커스터마이징Lua 플러그인 또는 WebAssembly☸️ 쿠버네티스 친화도일부 구성 필..