티스토리 뷰
MQTT를 이용해보자!
0. MQTT란 무엇인가?
- Publish / Subscribe ( Pub / Sub ) 메시징 프로토콜
- 자세한 설명은 다른블로그가...
1. 나는 왜쓰는가?
- 기존엔 Redis를 이용하여 Cache 및 Pub/Sub를 이용했음.
- Redis가 내가 원하는 모든걸 커버해주지 못했다.
- AWS이동하면서 기존시스템을 구애받지 않고 새로운걸 도전할수 있었고 사용해보니 좋다.
- 가볍다... 어느장치든 접근가능하다.. 쉽다.. 안정성보장.. 그럼 무엇이 문제인가?
2. 설치하기.
- EMQTT 설치 ( http://emqtt.io/ )
- 설치 샘플 AWS EC2 (Amazon linux)기준
- 클러스터링 걸기!
1. 서버설정
- 같은 서버에 여러개 클러스터링!
- emqtt 폴더복사
- ./etc/vm.args 파일 열기 (emqtt폴더 및에 있는 etc폴더 입니다... )
- name 부분의 emqttd@127.0.0.1 여기에서 emqttd부분을 다 다르게 수정.
- ./etc/emqttd.config 파일 열기 (emqtt폴더 및에 있는 etc폴더 입니다... )
- 1883, 8883, 8083 포트들이 중복되니 다른포트들로 변경.
- ./plugins/emqttd/dashboard/etc/plugin.config 파일 열기
- 18083 포트가 중복되니 다른 포트로 수정.
- 다른 서버에 클러스터링!
- emqtt 폴더복사
- ./etc/vm.args 파일 열기 (emqtt폴더 및에 있는 etc폴더 입니다... )
- name 부분의 emqttd@127.0.0.1 여기에서 127.0.0.1부분을 자신의 IP로 수정.
2. 연결하기
ex) emqttd1@127.0.0.1 , emqttd2@127.0.0.1 라고 할때
- emqttd1@127.0.0.1가 실행되고 있는 폴더일경우 아래 명령어 실행
./bin/emqttd_ctl cluster join emqttd2@127.0.0.1
# 확인
./bin/emqttd_ctl cluster status
# 해지 자기가 떠날건지 내보낼건지..
./bin/emqttd_ctl cluster leave
./bin/emqttd_ctl cluster remove emqttd2@127.0.0.1
- 위와같이 한곳에서 연결을 이루어지면 된다.
3. 테스트하기.
- 참고
1883 |
MQTT Port |
8883 |
MQTT Over SSL Port |
8083 |
MQTT(WebSocket) , HTTP API Port |
18083 |
Dashboard Port |
- Dashboard 로 테스트
- http://localhost:18083
- ID : admin
- PW : public
- 왼쪽 메뉴중 Websocket 들어가서 연결하여 테스트 진행하세요~
- Nodejs
- mqttjs 이용 ( https://github.com/mqttjs/MQTT.js )
- html 에서 바로 WebSocket 접근
- 아래처럼 browserMqtt.js 생성하고 script로 불러와서 사용하면됨.
4. 느낀점.
- 방대한 리얼에도 CPU, Memory 해피!
- 여러서버 클러스터링 되서 몇개서버 다운되도 해피!
- ACL 및 Auth 설정으로 사용자 통제도(받고 보내는 채널 제한) 되서 해피!
- 아직까진 매우 해피!
- Total
- Today
- Yesterday
- 네이트온
- 봇
- elasticsearch mapping
- maria
- AmazonMQ
- 2FA
- 엘라스틱서치 복구
- activemq
- MariaDB Galera
- 브라우저봇
- auto update
- mqtt
- 브라우저 제어
- 마리아
- puppeteer
- bitbucket
- electron-updater
- 2factor
- Redis
- backup
- ElasticSearch
- 팀룸
- electron
- Restore
- real
- elasticsearch mapping change
- 엘라스틱서치 백업
- 자동업데이트
- 오픈API
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |