목록전체 글 (89)
yoncho`s blog
Consumer Application에서 Broker로 많은 Connection (TCP 연결)을 맺는 것은 좋지 않다. RabbitMQ에서는 Channel 이라는 개념을 통해 하나의 TCP 연결을 공유해서 사용할 수 있는 기능을 제공한다. 단, 멀티 스레드 혹은 멀티 프로세스 사용하는 작업은 각각 별도의 Channel을 열어 사용하는게 좋다. Connection 간략 설명 : Client (Pub/Sub)은 RabbitMQ(Host)와 단일 TCP 연결을 함. 이걸 Connection이라고 부름. - Feature Client(Pub/Sub)과 RabbitMQ가 연결될 때, 정확히는 RabbitMQ에서 지원하는 프로토콜은 모두 TCP 기반이다. 일반적인 Connection 특징 AMQP 0-9-1 Co..
1. 속성 속성 Name : Queue 이름 (단, amq. 는 예약어로 사용 불가능) Durability : Broker가 재시작되어도 남아있을지 여부 durable : Broker가 재시작되어도 디스크에 저장되어 남아있음. transient : Broker가 재시작되면 사라짐 Auto-delete : 마지막 Queue 연결이 해제되면 삭제 Argument : 메시지 TTL, Max Length, Master Locator 등 추가 기능 명시
1. 속성 2. Exchange Type (4가지) 속성 Name : Exchange 이름 Type : 메시지 전달 방식 - Direct - Fanout - Topic - Headers Durability : Broker가 재시작되어도 남아있을지 여부 - durable : Broker가 재시작되어도 디스크에 저장되어 남아있음. - transient : Broker가 재시작되면 사라짐 Auto-delete : 마지막 Queue 연결이 해제되면 삭제 Exchange Type Type Description Feature Direct Routing Key가 정확하게 일치하는 Queue에 전송 Unicast Topic Routing Key 패턴이 일치하는 Queue에 전송 Multicast Headers [Key..
RabbitMQ란 Erlang으로 구현된 오픈 소스 메시지 브로커 소프트웨어로 AMQP(Advanced Message Queueing Protocol) _ https://ko.wikipedia.org/wiki/AMQP 를 구현했으며 이후 MQTT, STOMP 등의 프로토콜 지원을 위해 확장 메시지를 생산하는 생산자(Producer)가 메시지를 큐에 저장해두면 소비자(Consumer)가 메시지를 가져가 처리하는 Pub/Sub 방식의 메시지 브로커이다. 지원하는 Protocol - AMQP 0-9-1 (with extendsions) - AMQP 1.0 - RabbitMQ Stream Protocl - MQTT 3.11 - STOMP 1.0 ~ 1.2 특징. - Message Durability Rabbit..
*본 글은 node.js 언어로 Docker에 올라간 mosquitto (mqtt broker)에 topic을 구독 및 Payloag를 읽는 Subscriber Code 예제입니다. 목차 1. subscriber 코드 작성 (mqtt-subscriber -IBU.js) 2. 작성한 코드 실행 후 topic/payload 읽어오는지 확인 Subscriber 코드 작성 (파일 명 : mqtt-subscriber-IBU.js) mqtt-subscriber-IBU.js 파일 생성 $user> code mqtt-subscriber-IBU.js 코드 작성 const mqtt = require('mqtt') const host = 'localhost' //연결한 Broker 주소 const port = '1883' ..
*본 글은 node.js 언어로 Docker에 올라간 mosquitto (mqtt broker)에 topic을 발행 및 topic으로 payloag를 전달 하는 Publisher Code 예제입니다. 목차 1. publisher 코드 작성 (mqtt-publisher-IBU.js) 2. 작성한 코드 실행 후 Broker(mosquitto) 확인 Publisher 코드 작성 (파일 명 : mqtt-publisher-IBU.js) mqtt-publisher-IBU.js 파일 생성 $user> code mqtt-publisher-IBU.js 코드 작성 const crypto = require('crypto') const mqtt = require('mqtt') //npm install --save mqtt c..
목차 1. Env. 환경 2. MQTT Broker - mosquitto 선정 3. MQTT Broker - mosquitto 환경 설정 및 docker-compose로 실행 및 결과 1. Env. eclipse-mosquitto : version 2.0.15 Docker : version 23.0.5, build bc4487a 2. MQTT Broker로 Mosquitto 를 선정한 이유 MQTT ver 3.1/ 3.11을 구현한 오픈소스 메시지 브로커이며 특징으로는 C 기반이며, 클러스터링이 안된다. user authentication을 .file에 넣고 사용하며 테스트 했을 때, 일정 시간 패킷이 안오면 하트비트 메시지를 보내기 시작하고, 메시지가 안오면 끊어버린다고 한다. 현재 테스트 용도로 사용..
Env. : Windows pc - version Docker - version 23.0.5, build bc4487a go - version go1.20.4 windows/amd64 Work Directory : $GOPATH\bin (*위 경로를 본 글에서 \bin 으로 표현하겠습니다.) Work Flow 1. \bin 에서 Go module 초기화 2. \bin 에서 Restful API Go Example Code 작업 (main.go 생성) 3. \bin 에서 Dockerfile 작업 (dockerfile 생성) 4. \bin 에서 Dockerfile build 명령어 수행 (docker image 생성 완료) 5. 생성한 docker image로 docker container 실행 시켜서 Re..