블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 

'MQTT'에 해당되는 글 1

  1. 2014.02.13 MQTT 서버 간단 공부 노트 (2)
 



MQTT 스터디 노트

스터디 노트

- IBM에서 만듬

- FB 메신져가 이걸 사용. 국내 통신사 PUSH 서버도 이걸 사용함

- 일단 FB가 쓰니, 동남아권 Telco에서 패킷 걸리는 문제는 없을듯

- Qos 0,1,2로 해서, 2 의 경우 message delivery를 gurantee함

- 저전력!! 이게 중요.

- XMPP에 비해서 훨씬 경량. (XMPP는 XML, MQTT는 byte로 보내는데, 2바이트부터 시작)

- MQTT 서버를 라즈베리와 같은 임베디드 서버에도 넣을 수 있음. IOT용!! 즉 Things가 서버가 될 수 있다!!

- 대부분 사용자 인증만 제공 (user id/password 방식) 이것도 대부분 서버들이 파일에 저장한다. (IDM이나 KEY 시스템과 연계 필요)

- TLS/SSL은 지원. X.509 인증서를 이용한 양방향 인증도 지원


간단 테스트

1. http://mosquitto.org/download/ 에서 윈도우즈용 받아서 설치

2. 서버 구동



2. Message Subscriber 기동

: -h host명, -t 토픽명



3. 메세지 보내기

: -h 호스트명 -t 토픽명 -m "메세지"



※ 참고 : 

  • 그냥 오래 놔두면, 서버에서 Subscriber로 hearbeat를 보내는 것을 볼 수 있음. 
  • Subscriber를 hangup 시켜 버리면, 서버에서 자동으로 Connection을 끊음.
  • Subscriber hangup을 풀어주면, 자동으로 서버로 붙는 걸 볼 수 있음

MQTT 서버 검토 결과 요약

mosquitto 

- 간편해서 좋기는 한데. C 기반. 그리고 클러스터링이 안됨.  (HA, Fail over는 어케 한다냐?). Facebook이 쓴다고 하는데. Consistent hashing같은걸 써야 하는데, Fail back이 복잡할듯

- user authentication을 이건. file에 넣고 한다.

- 테스트 해보니 일정 시간 패킷이 안오면 하트비트 메세지 보내기 시작하고, 메세지가 안오면 끊어 버린다.


HiveMQ (저가 상용)

- Clustering 됨 (Infinispan 씀)

- JMX 모니터링 디는 걸로 봐서. 이것은 JAVA

- MultiCast로 클러스터링을 하지만, TCP로 Fixed Size 클러스터나, AWS EC2 클러스터 지원이 가능함.

- AWS/Azure 모두 지원

- 근데 회사가 좀 작아 보인다?? 독일 SI회사


Rabbit MQ

- shared memory 구조가 없어서 어떻게 하는가 궁금하기는 하지만, federation이나 shovel 컨셉을 쓰면 WAN 구간도 가능하기 때문에, 주의깊게 볼만함. 무엇보다 무료에다가 상대적으로 Learning curve가 낮음.

- MQTT 3.1 지원

- QoS0과 1만 지원 (2는 지원 안함)

- SSL 지원

- Session stickiness 지원


IBM MQ 

- http://www-03.ibm.com/software/products/en/wmq-telemetry 이게 갑인듯


Vert.x

-  아직 부족한듯. - 특히 QoS2 지원하려면 Q나 메세지 전송에 대한 결과치를 가지고 resend할 수 있는 메카니즘이 있어야 하는데 없는듯.


추가적인 의문사항

  • 서버에 붙고 떨어지는 이벤트를 받을 수 있나?
  • 클라이언트가 떨어지는 이벤트는 어떻게 받지? mosquitto는 단순 서버라서 몬가 event listener를 달 수 없어. 그래서, 클라이언트가 떨어질때 몬가를 할 수 없지.
  • 근데, 로그를 보면 주기적으로 ping을 보내는 걸?


클라이언트

- 이클립스 Paho등 제법 많음

- Embedded 시스템에 넣을 수 있을 정도로 작음


괜찮은 자료


'클라우드 컴퓨팅 & NoSQL > M2M & IOT' 카테고리의 다른 글

구글의 IOT 솔루션  (0) 2017.03.10
TI의 IOT 개발용 센서 키트  (0) 2016.03.17
MQTT 서버 간단 공부 노트  (2) 2014.02.13
본인은 구글 클라우드의 직원이며, 이 블로그에 있는 모든 글은 회사와 관계 없는 개인의 의견임을 알립니다.

댓글을 달아 주세요

  1. hong 2014.10.24 15:21  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. mosquitto Broker 에 SSL을 적용해서 테스트 해보신 적이 있으신지요? 인증서를 만들고 설정을 해서 클라이언트로 접근하면 인증 확인 실패라는 메세지라고 뜨네요. 구글링해도 적용해봐도 같은 결과만 나오구요.

  2. DavidLee 2016.06.01 19:17  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 좋은 글 올려주셔서 감사합니다.
    "국내 통신사 PUSH 서버도 이걸 사용" 라고 언급하셨는데
    국내 언론에서 국내 통신사 push 서버에 MQTT를 적용했다는 내용이 보도 된적이 있나요?
    저 내용에 관련된 출저가 혹시 있으시면 알려주실 수 있으실까요?
    구글에 검색해봐도 잘 안 나오더군요.