티스토리 뷰

카테고리 없음

MQTT를 이용해보자!

장송송 2016. 6. 24. 09:04

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
«   2024/05   »
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
글 보관함