智慧停车(十八) 微消息队列 MQTT使用

本文介绍了如何使用阿里云微消息队列MQTT进行设备与云端通信,以及在遇到集群问题时,如何通过RocketMQ解决消息重复接收的问题。详细阐述了MQTT的Topic和Group创建,以及Java代码示例展示如何收发消息。同时讨论了MQTT数据流出到RocketMQ的规则,确保云端业务在集群模式下正常运行。
摘要由CSDN通过智能技术生成

微消息队列 MQTT 版是阿里云推出的一款面向移动互联网以及物联网领域的轻量级消息中间件。简单的来说,可以使用它来实现设备端和云端的通讯。快速实现效果。

一 阿里云微消息队列 MQTT

分享个阿里云2000元代金劵,免费领取可以给你购买服务器节省一些资金

购买后会创建一个实例,实例信息如下:

接下来要创建topic和group。

1.创建topic

MQTT 协议支持多级 Topic,父级 Topic 需在控制台创建,子级 Topic 无需创建。选择 Topic 管理 > 创建 Topic ,在创建 Topic 对话框,输入 Topic 以及描述,单击确认,可以在 Topic 管理页面查看刚创建的 Topic。

2.创建group

订阅消息的时候要用到group,选择 Group 管理 > 创建 Group ID,在创建 Group ID 对话框,输入 Group ID,然后单击确认,就可以可以在 Group ID 列表中查看到刚创建的 Group ID。

3.通过Java收发消息

(1).pom.xml

<dependencies>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.10</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.paho</groupId>
                <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.2</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.48</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-onsmqtt</artifactId>
                <version>1.0.3</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>4.5.0</version>
            </dependency>
</dependencies>

(2).java代码

import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallbackExtended;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MQ4IoTSendMessageToMQ4IoTUseSignatureMode {

    public static void main(String[] args) throws Exception {
        /**
         * MQ4IOT 实例 ID,购买后控制台获取
         */
        String instanceId = "post-cn-n6w*********";
        /**
         * 接入点地址,购买 MQ4IOT 实例,且配置完成后即可获取,接入点地址必须填写分配的域名,不得使用 IP 地址直接连接,否则可能会导致客户端异常。
         */
        String endPoint = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值