Page 34 - 网络电信2019年10月刊下
P. 34

解   决  方  案

            时间收到大量请求,即使正常访问也会增大服务端和客户端开                          到指定文件夹,然后解压文件,并进行broker相关属性配置后
            销;二是,无法确认到达率。                                        启动服务。其次服务端要采用负载均衡和高可靠设置,建议使
                方法二:SMS推送,服务器有新消息时,向客户端发送一条                      用ZooKeeper和LevelDB的主-从模式。
            特殊的短信的指令,终端获取后立即向服务器获取信息0。SMS                            这里要注意的是如果为MQTT的部署主机不进行系统参数优
            的优点是实时性较好,缺点是成本较高,每条消息都需要短信                          化,则达不到预定效果,有几个参数需要修改(给出一些典型
            费用,另外短信有可能被因为短时间密集发送或者其他原因被                          设置):
            安全软件拦截。                                                  修改系统所有进程可打开的文件数量
                方法三:推送方式,在client端和server端之间形成永久                      sysctl -w fs.file-max=2097152
            连接,通过长连接进行实时推送。                                          sysctl -w fs.nr_open=2097152
                                                                     > vi /etc/sysctl.conf
                三、MQTT协议介绍                                           fs.file-max = 2097152
                MQTT是一个由IBM主导开发的,应用于物联网传输协议,                         fs.nr_open = 2097152
            用于轻量级的消息传输,保障了在带宽不足和网络稳定性不够                              设置服务最大文件句柄数
            的网络环境中提供可靠的网络服务0。它具有以下的核心设计特                             vim /etc/systemd/system.conf
            点:                                                       DefaultLimitNOFILE=1048576
                特性一:低开销,MQTT每消息标题可以缩短至只有2个字                          持久化设置允许用户/进程打开文件句柄数:
            节。而它的原始协议,MQ和HTTP都拥有高得多的消息开销0。                           ulimit -n 1048576
                特性二:对网络容忍度高,MQTT能从断开等故障中恢复0。                         > vim /etc/security/limits.conf
                特性三:专门为低功耗场景设计,支持百万级客户端,屏                            设置TCP 协议栈网络参数
            蔽客户端平台差异。                                                > vi /etc/sysctl.conf
                特性四:防火墙容错性高。MQTT可以封装在同一个socket                       net.core.somaxconn=32768
            连接中,显示为一个  HTTP升级请求,从而允许在这些情况下运                          net.ipv4.tcp_max_syn_backlog=16384
            行0。                                                      net.core.netdev_max_backlog=16384
                MQTT协议具有许多不同的功能,它与消息内容没有任何关                          设置可用端口范围:
            系。它通过 TCP/IP运行,TCP/IP可以提供基本网络连接0。                        net.ipv4.ip_local_port_range='1000 65535'
                MQTT为传递信息提供了几种服务质量等级:                                net.core.rmem_default=262144
                “AtMostOnce”:根据底层Internet协议网络尽可能多                    net.core.wmem_default=262144
            地传递消息。消息可能会丢失。例如,在环境监测系统中传输                              net.core.rmem_max=16777216
            温度等数据中使用这种服务质量等级,不管是个别的读数丢失                              net.core.wmem_max=16777216
            了,还是有了新的数据立即更新,最终结果都不受影响。                                net.core.optmem_max=16777216
                “AtLeastOnce”:消息一定会送达,缺点是有重复递送的                      #sysctl -w
            可能。                                                      net.ipv4.tcp_mem='16777216 16777216 16777216'
                “Just  Once”:确保你只收到一条信息。最慢但是最有效                      net.ipv4.tcp_rmem='1024 4096 16777216'
            的一种QoS等级。                                                net.ipv4.tcp_wmem='1024 4096 16777216'
                                                                     总体来看,在专网条件下,采用基于MQTT协议完成了大规
                四、机顶盒MQTT连接方案                                    模机顶盒的互联,实现了消息传递的能力,进而达到了物联网
                在机顶盒中预置基于MQTT的长连接插件,内网云端部署                       延展和智能家居的业务需求。
            MQTT服务,机顶盒既可以通过超低功耗连接到MQTT服务端,而
            服务端使用较少的硬件投入承载百万级用户连接。
                服务器采用负载均衡模式采用负载均衡调度主机和多台部
            署了MQTT服务(broker)的主机组成,部署了MQTT服务的主机
            根据机顶盒链接数随时可以在线扩充,不影响业务使用。机顶
            盒在开源软件基础上形成一个连接插件,并注册为服务,监听                          参考文献
            开机广播后启动MQTT  client功能,与MQTT  server(broker)          [1]  勇敢的心,《通讯协议与即时通讯》,简书,https://www.
            建立长连接,并上报自己的状态,同时接收server发来的订阅                            jianshu.com/p/ca4aeabf55f6 ,2018.3.1
            主题消息,然后进行处理(本地显示或者进行相关操作)。                           [2]  贺大伟,《玩转物联网之MQTT》,博客园 ,https://www.
                接下来就服务端和机顶盒端涉及问题稍作展开说明。首                              cnblogs.com/jjg0519/p/7398868.html,2017.8.20
            先是服务端MQTT服务可以采用Apache  ActiveMQ等开源软件做                [3]  开发快, 《物联网项目开发必读 深度分析MQTT 协议优缺点》,
            进一步优化后进行部署,以大家熟知的Apache  pollo(Apache                     电子发烧友论坛,http://bbs.elecfans.com/forum.php?mod=vie
            activeMQ类似)为例,均为从官方网站下载相关代码,上传tar包                        wthread&tid=911474&extra=page=3&typeid=470,2017.8.20

            58                                         网络电信 二零一九年十月
   29   30   31   32   33   34   35   36   37   38   39