物联网环境下的大吞吐量下消息服务集群设计-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

物联网环境下的大吞吐量下消息服务集群设计

简介:

1、基于IBM MQ产品来实施JMS技术的消息服务应用服务器。

2、物联网消息采用MQTT协议,WebSphere MQ Telemetry Transport (MQTT) 是一项专为受限设备和受限网络设计的异步消息通信协议,以轻量、精简、开放和易于实现为主要特点。

3、MQTT 规范是开放并且免版税使用的,这有助于更好地推广。提供开源的实现,在 http://eclipse.org/paho/上有各种客户端的开源实现

4、发布 - 订阅的消息通信协议,允许一条消息只发布一次,便可被多个消费端(应用程序 / 设备)所接收

5、提供多种消息服务质量,包括 MQ 的黄金准则 -- 保证传递且仅有一次传递

0 :消息最多被传递一次

1 :消息会被传递但可能会重复传递

2 :消息保证传递且仅有一次传递

6、为受限的设备所设计 :

预期客户端应用程序 / 设备有可能仅具备非常有限的处理能力和资源

占用空间极小的 MQTT 客户端 ( 和服务器 ) 类库

7、易于使用(和实现)

简单的动词集合,包括 connect, publish, subscribe 和 disconnect

内建结构支持处理客户端和服务器之间的连接丢失

如果客户端意外掉线,使用“遗愿和遗嘱”发布一条消息

8、WebSphere MQ Telemetry 由 Telemetry 服务和 Telemetry 客户端组成。其中 Telemetry 服务作为 Queue Manager 的一部分,可作为 MQTT 连接的服务器,Telemetry 客户端可用来测试 MQTT 连接的可用性。

9、在传统的开放平台 WebSphere MQ 应用架构中,每个队列管理器都是独立的。当一个 QM 给另一个 QM 发送消息时,需要定义一个传输队列(transmission queue), 一个连接到目的端 QM 的通道,并且需要在发送消息的客户端上定义远程队列定义(remote queue definition)。为了简化 MQ 系统配置,可以通过 MQ 集群的使用,减少队列管理器上的对象数量,使得不同的 QM 可以互相通信而不需要定义众多的传输队列、通道以及远程队列定义。当集群中含有一个以上的同一队列实例时,WebSphere® MQ 会根据负载均衡算法选择最佳的队列进行消息路由。

10、MQ 集群中的完全存储仓库存储集群中队列管理器的元数据信息,一个集群不建议使用超过两个完全存储仓库

11、完全存储仓库建议不做业务应用,具体业务应用使用不完全存储仓库

12、在 MQ 集群中使用 MQTT Telemetry 服务时,只需要在集群中建立集群主题(Cluster Topic),并且只需要在集群中的一个队列管理器创建,不需要创建共享队列,默认使用 SYSTEM.MQTT.TRANSMIT.QUEUE

13、使用 MQ Telemetry 不需要手动创建订阅对象(Subscriptions),MQXR 服务默认使用 client ID :topic string 为名字自动创建订阅对象

14、完整的MQTT协议规范pdf下载:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/MQTT_V3.1_Protocol_Specific.pdf

15、 java -Xms50M -Xmx50M -Djava.ext.dirs=/root/mq/lib -cp mqttperf.jar SingleTopicSub -b 9.119.154.235 -c 1000 -m 50000 -t TestTopic -s 1 即一共创建了 1000 个订阅者,无差错情况下会接收到 50000 条消息。命令中参数 -Xms 指程序的初始化内存大小,-Xmx 指程序占用的最大内存,-Djava.ext.dirs 指引用包路径,该路径文件夹中应该包含有 org.eclipse.paho.client.mqttv3.jar。注意:其中 -m 参数主要用来标记所有客户端应该收到的消息总数,其值为所有客户端数与发布程序发布的消息数之乘积,用来和实际接收到的消息总数做比较,判断所有消息是否被可靠传输。


作者:jaminwm

来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: