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

网络
物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。

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 参数主要用来标记所有客户端应该收到的消息总数,其值为所有客户端数与发布程序发布的消息数之乘积,用来和实际接收到的消息总数做比较,判断所有消息是否被可靠传输。

责任编辑:何妍 来源: CSDN博客
相关推荐

2023-08-03 14:18:29

Rust阻塞函数

2023-11-07 15:11:46

Kafka技巧

2021-02-24 08:20:33

MQTT物联网网关开发物联网

2013-04-19 09:45:20

AMPLabHadoopHDFS

2019-08-20 00:20:47

TCPHOL吞吐量

2023-02-09 08:57:11

Callable异步java

2019-08-14 08:20:59

Iperf网络吞吐量带宽测试

2019-09-25 08:37:48

MySQL数据库人生第一份工作

2009-02-24 09:28:00

2019-09-29 15:36:01

吞吐量MySQL数据库

2018-06-28 23:31:14

物联网云存储安全

2020-02-06 15:09:54

疫情物联网IOT

2022-05-24 09:30:00

消息吞吐车联网平台车联网

2024-03-12 08:11:27

2009-07-27 13:26:45

数据吞吐量测试测试网速

2024-01-19 13:42:00

模型训练

2010-08-23 10:16:09

2020-07-24 00:08:13

物联网IOT人工智能

2019-04-17 16:16:55

物联网智能物流

2019-07-26 15:41:27

程序员技能开发者
点赞
收藏

51CTO技术栈公众号