文件名称:
基于RocketMQ的MQTT消息推送服务器分布式部署方案.pdf
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-09-13
详细说明:伴随着互联网的飞速发展, 特别是在近几年中, 移动互联网的发展更为迅猛. 在移动互联网中, 消息推送是其中很重要的一部分, 它是手机客户端信息发布和通信的重要方式. MQTT 协议是Android 系统中消息推送的实现技术之一, 由于其具有低功耗、节省流量和可扩展性强的优点, 目前已得到了众多应用. 同时, RocketMQ 作为一种分布式消息队列, 在服务器分布式部署上具有很大优势, 具有高性能、高可靠、高实时、分布式特点. 本文介绍了MQTT 协议与RocketMQ 的这种开源项目的应用, 并通过RocketMQ 与Mosquitto 相结合的方式, 实现了一种基于RocketMQ 的MQTT 消息推送服务器及其分布式部署.2018年第27卷第6期
http://www.c-s-a.org.cn
计算机系统应用
消息进行消费,并将 RocketMQ的Topi直接传递给3分布式部署结构
MQTT的Topi,即 topic rocketmq.并将Body和3服务器角色分配
QoS亘新按照MQTT格式进行封装,并且推送给订阅
对服务器的架构角色分配如表2所
了该卞题的客户端.
32服务器物理结构
RockctmQ
RockctMo
Chent 1 Mosquito
图3中,由于 Name server是一个几乎无状态节
1、发布
broker RocketMQ broker Mosquito Client 2
消息
点,故部署为集群,节点之间无任何消息同步11
、返后送3将消息
Producer与 Consumer完全无状态,集群部署
IoC
格式并发到总线
Producer选择 Name server集群中的一个随机节点建
沤回送
r7、将消恩
状态亻近行消费转换为8、发布到
立长连接. Consumer基本与 Producer相同,只是其要
MQT客户端
格式并9、返回
想提供 Topic服务的 Master、 Slave建立长连接并定时
发术「送达状态
发送心跳.其即可以从 Master订阅消息,也可以从
图2消息流程图
Slave订阅消息
表2服务器架构角色
IP地址
主机名
操作系统
角色
架构模式
172.17.21.8
rocketmg-master2
Centos 6.5
nameserver brokerserver
Master
172.17219
rucketInul-slave2
Centos 6.5
brukerserver
172.17,21.10
ocketmq-master
Ubuntu 16. 04
nameserver、 brokers
Master
172.1721.11
rocketmq-slavel
Ubuntu 16.04
brokerserver
Slave 1
172.1721.14
ruckelrmc-narmeserver
CentOs 6.5
timeserver
Broker可分为 Master与 Slave,通过指定相同的
#f vim/etc/hosts
Brokername,不同的 Brokered来定义 Master与
172.17.21.8 mqnameserverl
Slave的对应关系.想要一个代理成为 Master,设置
172.17.21.10 mgnameserver 2
Brokered为0,设置 Brokered的值非0则为 Slave
172.17.21.14 mgnameserver3
Master可以部署多个.每个 Broker与 Name Server集群
172 17.21. 8 rocketmg-master2
中的所有节点建立长连接,定时向所有的 Name server
172. 17.21.9 rocketmq-slave2
注册 Topic信息
172. 17.21.10 rocketmq-master1
172. 17.21.11 rockelmg-slavel
由于篇幅有限,本文只举例说明 Master服务器配
Name Server: Name Server:Name Server
置,其余配置基本相同.
l72.1721.14172.1721.10172.1721.8
vim/usr/local/rocketmq/conf/2m-noslave/broker
brokerNamebroker-I
Broker master: Broker slave
# brokered为0为 Master,非零为 Slave
172.1721.10172.1721.11
Consumer
Producer
brokered=0
namesrvAddr-mqnameserverl: 9876, mqnameserver2
Broker Master2: Broker Slave
172.17.21.8172.17.21.9
876, mqnameserver3: 9876
store PathRootDir-/data/rocketmg/store
图3分布式部署结构图
storePath CommitLog-/data/rocketmq/store/commitlo
33服务器配置
sendMessage ThreadPoolNums=128
Host文件配置
pullMessage ThreadPoolNums=128
系统建设8
计算机系统应用
http://www.c-s-a.org.cn
2018年第27卷第6期
4消息服务器测试
保持一个稳定的状态,基本能够满足日常服务器需求
4.1单 Broker测试
42双 Master、双 Slave测试
本部分将对本文所设计的服务器在增加负我的情
接下来模拟大量用户进行连接,并在连接完成后
况下进行性能和鲁棒性的测试服务器配置如表3所示进行消息收发,测试其CPU占有率及消息全部送达所
需时间.测试结果如表4所小
表3服务器配置
参数
表4服务器性能测试结果
Intel corl 152, 3 ghz
Connections CPU usage (%)1-100 push(s)1-1000 push(s)All push(s)
内存
64 GB
10000
14.61
0.093
0.112
11961
存储
T
20000
25.45
0.105
0.231
27235
Centos 6.5
30000
33.47
0.279
0.434
43.601
网卡
1000 Mbps
40000
0.394
0.673
66.81
50000
46.08
0.485
0.869
109.398
本文通过使用 Erlang语言开发的,开源测试工具
75000
55.21
0.676
.106
208.82
100000
63.50
0.843
1.431
315873
emqtt benchmark模拟客户端登永并发送消息对服务
器进行负载压力测试.测试网络结构图如图4所示.其
由表中数据可以得出,本文所设计的消息推送服
中,票色连接线代表网络连接,箭头表示数据流向
务器,响应速度基本满足当前移动互联网领域中的需
Broker
求,服务器负载也在可接受范围内.连接并发数量尚可,
服务器性能稳定
5总结与展望
本文在研究MQIT协议以及 RocketMQ的基础
上,论述了基」 RocketMQ的MQTT消息推送服务器
的设计,并对其进行了实现.本文重点阐述了消息推送
服务器的消息接收和发送、消息格式转换功能、消息
Terminal
Terminal
推送服务器的性能测试,同时与客户端结合完成了消
息推送服务器的功能测试.最后根据测试结果可以看
Terminal
Terminal
出,本文设计的服务器完成了消息收发、协议转换等
图4测试网络结构
功能要求,同时具有良好的抗压能力和鲁棒性
两台 terminal模拟用户起大量线稈,不间断的向
下一步的工作主要集中在提高服务器的并发处理
broker发送大小为2K的消息,测试结果如图5所示
能力上,同时进一步提高服务器的性能及鲁棒性
18000
16000
参考文献
14000
1架构说:阿里中间件技术消息中可件篇.htψp:/www.jiagoushuc
10000
com/articlc/1000 141. htmL. [2016-04-181
8000
6000
2 Apache RocketMQ: An open source distributed messaging
400
andstreamingdataplatformhttp:/rocketmq.apache.org[2016
2000
24681216202428
3Mosquitto.AnopensourceMqttV3.1/v3.1.1brokerhttp
线程数
mosquito. org/. [2015
图5TPS测试结果
4Kobcjayandy.Rockctmqai].http://blog.csdn.nct/kobcjay
andy/article/details/52831213. [2016-10-16
通过测试,单机 Broker的TPS可达到15900左
5欧志芳.基于 RocketMQ实现异构数据库同步.网络安全技
石,继续增大消息发送量时,可以看到TPS有下降的趋势
术与应用,2016,(12):99-100.[doi:10.3969/isn.10096833
通过测试可以观测服务器在大量消息情况下依然能够
201612.066]
86系统建设 Systerm Corstruction
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.