13.9.4.2 InfluxDB 플러그인 스토리지(Plugin Storage) 모듈 백그라운드 구동 환경 설정
파이프라인(Zenoh-Flow)에서 DB 접속용 코드를 처형시키고, 데이터를 무작정 Zenoh 글로벌 토픽망(telemetry/robot_1/temperature)으로 내동댕이 쳤다 한들(13.9.4.1장 참조), 허공을 떠도는 이 데이터 바이트들이 스스로 데이터베이스 하드디스크 상자 안으로 걸어 들어갈 리 만무하다.
기존 시대에는 이 바이트들을 줍기 위해 파이썬으로 Zenoh API Subscriber 코드를 짠 다음 그 안에서 influxdb-client 를 호출하는 더티 스크립트를 서버 백그라운드에 크론(cron)으로 돌리곤 했다. 이 얼마나 볼품없고 연약한(Fragile) 런타임 이중화 짓인가?
본 절에서는 멍청한 스크립트를 박살 내고, Zenoh 라우터 데몬(Daemon)의 배 한가운데에 C++ 네이티브 InfluxDB Storage Plugin 엔진을 바늘로 푹 찔러넣어 한 몸으로 구동시키는(Daemonized) 파괴적 백그라운드 적재 런북을 갈파한다.
1. 커스텀 스크립트 연결의 혐오와 네이티브(Native) 플러그인 강압
데이터 통신 코어 엔진(Zenoh)에서 데이터를 꺼내 다른 인터프리터 언어(Python 등)로 한 바퀴 돌린 후 다시 TCP 통신을 열어 DB에 꽂아 넣는 행위는 레이턴시(Latency)와 CPU 사이클을 중복으로 갈아먹는다.
아키텍트는 관제 클라우드(AWS/GCP) 메인 관문 서버 한가운데 띄워두는 Zenoh Router 데몬 자체의 Config.json5 심볼을 조작하여, 라우터 데몬이 구동될 때 아예 InfluxDB 라이트(Write) 엔진을 자신의 자식 스레드로 품고 깨어나게 만들어버린다.
2. 데몬 플러그인 설정(Config.json5) 락온 런북
클라우드의 관제 수신부 Zenoh 라우터를 기동할 때 적용하는 아래의 폭력적 json5 주입 코드를 보라.
// [Zenoh 라우터 코어망의 InfluxDB 플러그인 백그라운드 수납 런북]
{
plugins: {
// 1. Storage Manager 플러그인을 강제로 켠다!
storage_manager: {
storages: {
// 2. 이 거대한 라우터 메쉬망에 'telemetry_db_archiver' 특수 톱니바퀴를 체결한다.
telemetry_db_archiver: {
# 파이프라인(로봇 엣지)들이 뿌려대는 이 토픽 문패들을 전부 내 스레드로 흡수해라!
key_expr: "telemetry/robot_*/temperature",
# 흡수한 바이트들을 버리지 말고 InfluxDB TSDB 포트(Backend)로 부어버린다!
# 라우터 데몬이 직접! 네이티브 C 속도로 쿼리를 때린다!
volume: {
id: "influxdb", # Storage 종류: InfluxDB 플러그인
url: "http://localhost:8086",
org: "MyFactory",
bucket: "RobotSensorBucket",
token: "my-secret-admin-token-123"
}
}
}
}
}
}
이 json5 파일을 머금고 zenohd --config config.json5 명령어가 터미널에 타격되는 순간!
라운터 데몬은 포트를 열고 트래픽을 중계할 뿐만 아니라, 그 트래픽 중 telemetry 라는 문패가 붙은 패킷 패이로드들을 낚아채어, 데몬 스스로가 직접 InfluxDB REST TCP 소켓을 직결 포격해 버린다.
3. 데몬화(Daemonized)의 궁극적 권력: 속도와 결합도
이 백그라운드 플러그인 아키텍처는 가히 신의 권력과 같다.
어플리케이션 개발자는 더 이상 데이터를 DB 에 넣기 위해 파이썬 코드를 짤 필요도, Docker 컨테이너를 하나 더 띄울 필요도 없다(Zero Middleware Code). 오직 Zenoh 라우터와 InfluxDB 프로세스 단 두 개만 돌려놓고, 매니페스트 json 문장 하나로 이질적인 두 바이너리의 혈관을 하나로 꿰매버렸다(Welding).
로봇 엣지 기기는 그저 파이프라인에서 하드 리얼타임 연산을 끝내자마자 토픽(telemetry/robot_1/temperature)을 허공에 날리고 자기 살길을 찾아 0.1ms 만에 사라진다. 클라우드에 떠 있는 Zenoh 스토리지 플러그인 데몬은 수만 대의 로봇이 뱉어낸 그 데이터 파도들을 광속으로 스크랩하여 InfluxDB 시계열 저장소 바닥에 영원히 새겨버린다.
파이프라인 통신 인프라(Data Ingestion)와 시계열 데이터 관리 인프라(Time-series Storage)를 코드 베이스가 아닌 설정(Configuration) 기반 백그라운드 데몬 플러그인 단계에서 우아하게 모듈러-퓨전(Modular-fusion) 시킨 백엔드 통치법의 정수다.