RabbitMQ

RabbitMQMQ(Message Queue)가 새로운 건 아니다. 소프트웨어를 개발하다 보면 스레드간 혹은 프로세스간 데이터 통신을 해야 하는 경우가 있다. 주로 Job을 자식 쓰레드(혹은 프로세스)에 분산해서 처리하는 소프트웨어가 돼겠다. 보통은 IPC로 충분한데, 처리해야하는 데이터의 양이 많아지면, queue를 고민하게 된다. 예전에 보안 로그 분...

NATS

NATS는 분산 시스템을 지원하는 연결기술(connective technology)로 메시지의 주소 설정, 검색, 통신을 담당한다. 마이크로서비스아키텍처(MSA)에서의 메시지 교환, 스트림 처리를 위해서 사용한다. 클라우드 메시징 서비스 (마이크로서비스, 서비스메시) 이벤트 / 데이터 스트림(데이터 모니터링, 분석, ML/AI)...

Apache Kafka

카프카(kafka)는 분산 스트리밍 플랫폼(Distributed streaming platform)이다. 분산 스트리밍 플랫폼은 아래의 기능을 가지고 있어야 한다. 데이터 스트림을 게시(Publish)하고 구독(Subscribe)할 수 있어야 한다. 이 점에서 메시지 큐 혹은 엔터프라이즈 메시징 시스템과 유사한 면이 있다. 내결함성(장애에 대한 내성)을 ...

ElasticCache 기반 메시징 애플리케이션 개발

AWS에서 제공하는 인프라와 서비스들을 이용해서 대량의 메시지를 교환하는 메시징 애플리케이션을 만들어보려 한다. 메시지는 을 이용한다. 아래와 같은 구성을 가질 것이다.PUB/SUB은 REDIS 고유의 기능으로 구현에 어려움은 없다. 1. 채팅방에 해당하는 Topic을 만든다. 1. 메시지 수신자는 해당 Topic을 구독(REDIS SUBSCRIBE)한다...

kafka를 이용한 chatting 프로그램 개발

Kafka 프로듀소와 컨슈머의 개발하는 법을 익힌다. 컨슈머 그룹에 대한 개념을 잡는다. 메시지 교환 프로그램의 구조를 개발한다. IoT응용을 찾는다.kafka의 구성을 끝냈다고 가정한다. 아직 kafka 구성을 마치지 않았다면 문서를 참고해서 구성을 끝내자.채팅 프로그램은 아래의 구조를 가진다. 가장 단순한 구조로 만들고, 이 구조를 확장해 나가자.쉽...

MQTT

MQTT MQTT는 경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜이다. M2M(machine-to-machine)와 는 MQTT 3.3.1 를 IoT에서의 표준 프로토콜로 채택했다. 지금 나는 IoT관련 일을 하고 있으며, 로컬과 원격 모두에서 사용할 수 있는 경량의 통신 프로토콜로 MQTT를 고려하고 있다. 예전이라면 직접 만들...

Consistent Hash 기반의 대량 메시지 처리 인프라

IoT 플랫폼에서 사용 할 수 있는 대용량 메시지 처리 시스템 개발에 대한 아이디어를 정리한다. 크게 두 가지 아이디어가 있을 건데, 그 중 consistent hash를 이용한 방법을 살펴본다. 이 메시지 처리 인프라는 아래의 특징들을 가지고 있다. 1. 유저간 채팅 서비스가 목적이 아니다. 유저간 채팅 서비에도 사용 할 수 있긴 하지만, IoT를 구성...

MQTT 소개

MQTT 소개MQTT는 경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜이다. M2M(machine-to-machine)와 (Internet of things)에서의 사용하려고 만들었다. IoT를 위해서 낮은 전력, 낮은 대역폭 환경에서도 사용할 수 있도록 설계됐다. IoT 관련 일들을 하고 있는데, 저전력/소규모 디바이스를 위한 통...

AMQP - Advanced Message Queuing Protocol

AMQP - Advanced Message Queuing ProtocolAMQP는 message-oriented middleware(MON)을 위한 메시지 표준규약이다. AMQP는 애플리케이션 레이어로 다양한 종류의 메시징 애플리케이션과 communitation pattern을 효과적으로 지원하기 위해서 만들어졌다. 이 프로토토콜은 메시지 기반 커뮤니케이...

Constrained Application Protocol

Constrained Application ProtocolConstrained Application Protocol은 간단한 전자 기기들의 인터넷 통신을 지원하기 위해 만든 프로토콜이다. 특별히 저전력 센서, 스위치, 밸브 등의 기기를 표준적인 인터넷 환경에서 제어하기 위한 목적으로 만들어졌다. CoAP는 WSN(Wireless sensor network...