NATS streaming 활용기

NATS는 Go 언어로 작성된 open-source messaging system으로, Cloud Native Computing Foundation project의 하나이다. 이번에 활용한 NATS streaming은 NATS에 streaming 기능이 포함된 것이다.

이번에 NATS를 활용하는 것은, 기존에 Redis를 pub-sub로 활용하였던 것을 대체하는 목적이었다. 실제 사용 목적은 Applications of the in-memory database Redis in processing transient event alerts 포스터 발표 자료를 참고할 수 있다.

현재 활용 환경에서는, NATS streaming의 Python client library인 Python Asyncio Client를 이용하여, 다양한 방법으로 message processing이 이루어지고 있다. 예를 들어, 일부 client agent의 경우에는 PostgreSQL에 message를 처리하여 관련 정보를 기록하고, 다른 client agent의 경우에는 SQLite를 이용하기도 하며, 또 다른 client agent의 경우에는 email 전송 등의 기능을 수행하고 있다.

nats-top을 이용하여, monitoring이 이루어지고 있으며, 현재까지 문제 없이 NATS streaming을 잘 활용하고 있는 상황이다.