IoT(Internet of things)物联网入门介绍
1、什么样的物可以入网?
- 要有数据传输通路
- 要有一点的存储功能
- 要有CPU
- 要有操作系统
- 要有专门的应用程序
- 遵循物联网的通信协议
- 在网络世界中有可被识别的唯一编号
2、MQTT协议
不是在说物联网吗?为啥扯到协议啥的?
其实互联网的本质也是通过网络、协议将海量主机进行连接的,物联网也不例外。但是物联网不太需要电脑主机那样强大的、多元的计算能力,物联网的“物”一般功能都是比较单一的,比如传感器只需要采集指标、摄像头拍视频等。
所以最简单的物联网只需要在联网的“物”上加上一个可入网、可收发消息或者更厉害一点:能进行计算的芯片,就可以达到入网的效果了。简单理解,物联网协议就是“物”与网之间的桥梁,MQTT协议就是其中比较具有代表性的一种。
- MQTT协议是IBM针对物联网提出的一种轻量级协议,建立于TCP/IP层协议之上。是物联网的重要组成成分,可能会成为物联网的事实标准。
- MQTT协议具有QoS(Quality of Service,服务质量),能够缓冲消息,并通过重传机制保证终端设备收到消息。其消息格式极其简化,最短是两个字节,提供订阅式和发布模式,高效推送消息。
- 三角色:服务器代理、订阅者、发布者
- QoS:
- 零级(至多交付一次信息),如传感器
- 一级(至少交付一次信息),确保消息到达
- 二级(准确一次交付信息),如计费系统
3、Apache Apollo服务器
看名字可以知道,Apache Apollo是一个开源的东西,它就是早期的代理服务器,是在ActiveMQ基础上发展而来的,可以支持STOMP、AMQP、MQTT、Openwire、SSL、WebSocket等多种协议。
不过,Apache Apollo服务器已经停止维护了。而且网上研究这个的也不多。
4、Apache Artemis服务器
替代Apollo的就是Artemis了。操作指令与Apollo类似,网上文档也比较齐全,按照教程也可以很快就搭建一个服务器出来。Linux和Windows都可以搭建的服务器。
单机版搭建流程如下:
- 下载,解压
- 创建broker代理:artemis create xxx
- 启动代理:xxx/bin/artemis run
- 外网访问配置
修改bootstrap.xml
<web bind="xxx.xxx.xxx.xxx:61610" path="web"> <app url="activemq-branding" war="activemq-branding.war"/> <app url="artemis-plugin" war="artemis-plugin.war"/> <app url="console" war="console.war"/> web>修改jolokia-access.xml
<allow-origin>*allow-origin>
5.远程JMX访问
出于安全原因,默认情况下,禁用对Artemis的远程JMX访问。Artemis有一个JMX代理,该代理允许远程访问JMX mBean。通过配置文件中的
connector
元素进行management.xml
配置<connector connector-port="1099" connector-host="xxx.xxx.xxx.xxx" rmi-registry-port="(如果不设则任意生成)" />注意:rmi注册表将选择一个要绑定的IP地址。如果系统上存在多个IP地址/ NIC,则可以通过在artemis.profile中添加以下内容来选择要使用的IP地址:
-Djava.rmi.server.hostname=localhost
5、阿里云MQTT消息队列服务
这个很好用,也不是很贵,因为开源的服务器虽然不要钱,但研究起来总是要费一番功夫的,而且还需要自己运维。如果在资金充足的情况下,直接使用现成的服务也是很好的。