엣지 디바이스 메시지 브로커 : GS-Broker 기술
BLOG는 GEdge Platform 기술 자료 및 홍보 정보를 지원합니다.
엣지 디바이스 메시지 브로커 : GS-Broker 기술
1.개요
Edge디바이스로부터 수집되는 다양한 데이터를 지원하는 컴퓨팅 환경
엣지 디바이스별 상이한 메시지 프로코톨은 서비스 플랫폼의 복잡성을 증가
신규 엣지 디바이스 or 메시지 프로토콜 추가시 유연한 확장의 어려움
2.구조
GS-MQ(Gedge Service Message Queue) 기반의 이종 엣지 디바이스 데이터 고속 처리 기술
- GEdge Platform 중심의 엣지 서비스와 IoT 디바이스 간 메시지 연계 프로토콜
- gRPC를 활용한 저지연 메시지 전달 기술 적용
GS-MQ(Gedge Service Message Queue) 를 활용한 엣지 서비스 핸들러 간 메시지 공유
- 메시지 전송, 수신, 정책설정(데이터 분류/Priority선별 등) 을 통한 메시지 공유
- GS-Broker를 활용한 분산 메시지 처리 환경 제공 및 유연한 확장이 가능한 메시지 브로커
다중 클라우드 GS Engine 환경이 고려된 메시지 교환 도구 제공
- GS-MQ와 엣지 디바이스 브로커가 메시지를 교환하는 구조 설계
- GS-CoreMQ, GS-ClusterMQ, GS-NodeMQ로 구성되어 수평적 또는 직 하위(Depth 1) MQ와 메시지 교환 가능
- 도커 컨테이너 단위로 배포되는 공용 작업 큐(Common Job Queue)인 GS-MQ(GEdge Service Message Queue)는 GEdge Platform에 배포된 서비스 간 데이터 교환을 지원
- 공용 작업 큐는 1분 미만의 배포 시간을 가지며, 동적 라우팅 방법으로 메시지 송수신 채널 이름만을 이용하므로, 엣지 서비스 간 활용을 쉽게 함
- 메시지들의 고속 처리를 위해 GS-MQ는 Golang으로 개발되었으며, 동기(Sync)/비동기(Async)를 모두 지원
- GEdge Platform에 배포된 엣지 서비스들은 gRPC, REST, WebSocket 인터페이스를 통해 FIFO 기반의 Queue, Pub/Sub, RPC, Queries 패턴 기반의 메시지를 처리
- 쿠버네티스에도 배포 가능한 GS-MQ는 서비스 요청 수 및 자원 활용에 따른 Auto-Scale을 지원하며, 필요시 영구 볼륨(Persistent Volume)을 사용할 수 있음
- GS-MQ를 구성하는 컴포넌트는 GS-MQ Core, GS-MQ Bridge, GS-MQ Source, GS-MQ Target으로 구분하며, 각 컴포넌트에 대한 설명은 다음과 같음
: GS-MQ Core: 공용 작업 큐의 핵심 컴포넌트로써, 위 내용을 모두 포함
: GS-MQ Bridge: 엣지 클러스터 간 메시지를 연결, 복제 등을 지원하며, 독립적인 작은 도커 컨테이너로 구성
: GS-MQ Source: GS-MQ Core를 중심으로, 메시징 구성 요소(RabbitMQ, Kafka, MQTT) 및 REST API와 같은 외부 시스템을 연결하는 기능.
. 외부 서비스에 대한 플러그 앤 플레이 연결을 지원하며, GS-MQ Bridge와 마찬가지로 독립적인 작은 도커 컨테이너로 구성
: GS-MQ Target: GS-MQ Core를 중심으로, 데이터 베이스, 캐시, 메시징 및 서버리스 등 외부 시스템과 내부 엣지 서비스의 연결을 지원하는 컴포넌트
. GS-MQ Source와 같이 외부 서비스에 대한 플러그 앤 플레이 연결을 지원하며, 독립적인 작은 도커 컨테이너로 구성
엣지 디바이스 구성을 통한 GS-Broker 기능 검증
- gRPC를 활용한 저지연 메시지 전송 기능 검증 : gRPC + K8S Pods
- MQTT Broker와 센서(Motion/Door)를 연동한 GS-Broker 테스트 환경 구성 및 기능 검증