客户端断开连接时Paho MQTT消息可靠性

时间:2018-05-03 12:12:43

标签: java apache-kafka mqtt paho

我正在研究MQTT kafka源连接器。消息是    来自MQTT Publisher然后连接器将订阅MQTT    主题(/ iot / sensor /#),这些消息将发布到Kafka    经纪人。但同样,如果我再次停止连接器    重新启动连接器然后连接器消耗来自的消息    mqtt broker但是缺少一些mqtt消息(如果我发送1000    来自MQTT发布者的消息,而不是在kafka中获取1000个消息    我给mqtt ClientID是唯一名称。我设置了mqtt paho客户端    使用setCleanSession = false,QOS = 1并使用    MqttDefaultFilePersistence(DIR)。 Rabbitmq版本是3.6.10

伪代码

Public class MyTask extends SourceTask implements MqttCallback{
//Initialzied the queue
@Override
    public void start(Map<String, String> map) {
    //set necessary properties and configuration
    //set the required mqttConnect options and mqtt broker
     Paho mClient = new MqttClient(mqttURl,Unique ClientID, new MqttDefaultFilePersistence(DIR))
     mClient.connect(RequiredConnectProperties)
    }
    @Override
    public List<SourceRecord> poll() throws InterruptedException {
    //poll the queue
    // publish messages to kafka
    }
    @Override
    public void stop() {
    //disconnect the mqtt paho clent
    }
    @Override
    public void messageArrived(String mqtttopic, MqttMessage message) throws Exception {
    //add the messages to queue

    }
}

0 个答案:

没有答案