物联网浅谈
开篇语:物联网Iot作为互联网行业一个重要的分支。现在及未来一段时间Iot将会作为一门比重很高的行业热门持续存在。本篇就结合着最近的项目,从技术角度去梳理下Iot的架构和实现
1、技术栈
- springboot
- netty
- mqtt
- redis
- rabbitmq
- mysql
[外链图片转存失败(img-b7IgRfvt-1563330173906)(https://i.imgur.com/blb1EgU.png)]
简要说明,终端与服务端建立长连接,通信框架选择netty,数据协议使用mqtt。
服务端收到客户端发送上来的消息根据不同的主题推动到不同的消息队列。
每个消息队列有多个消费者,根据不同的业务逻辑进行选择性消费。
2、为什么选择netty
mina和netty都是很好的通信框架都是基于NIO进行的。但是两者的区别是任务调度的方式不同。github主流都是以netty为主,java对其也有很友好的封装。
3、为什么选择mqtt
主流的物联网协议解析标准,它是以位定义的一个通信数据协议,很大层度上减少了通信的流量。netty有集成mqtt,对各部分报文和常见的逻辑可言进行很友好的封装。
4、消息队列在该架构中发挥的角色和意义
消息队列可以实现通信层与业务层进行解耦。业务层的阻塞不会影响通信层的逻辑。