Я создал потоки с помощью spring-Xd, такие как-
stream create mqtttestfile --definition "mqtt --url='tcp://localhost:1883' --topics='helloTopic' | file" --deploy
Создан и развернут новый поток mqtttestfile. Я также проверил на localhost:9393/admin-ui, поток успешно создан и развернут.
мой брокер MQTT работает на локальном хосте: 1883. но когда я проверил каталог файлов /tmp/xd/output, файл mqtttestfile.out отсутствует.
Мне нужны разъяснения по следующим пунктам моего предположения: -
Я думаю, что клиент MQTT уже настроен в исходном модуле mqtt spring-xd. поэтому, когда мы создаем потоки, он автоматически подписывается на определенную тему на брокере.
Я также попытался запустить два отдельных скрипта Python, один для подписки, а другой для издателя на отдельном терминале, и он работает нормально. так что никаких проблем с брокером mqtt.
это журнал из консоли spring-xd, который я получил:
istener - Планирование развертывания в новый контейнер(ы) через 15000 мс
2017-03-04T12:07:51+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — событие кэша пути: path=/deployments/modules/allocated/d634d310-12b4-4a83-baea-c1c98dfb7bba/mqtttestfile.sink .file.1, тип=CHILD_ADDED
2017-03-04T12:07:51+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — Развертывание модуля «файл» для потока «mqtttestfile» 2017-03-04T12:07:52+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — модуль развертывания [ModuleDescriptor@7e658391 moduleName = 'file', moduleLabel = 'file', group = 'mqtttestfile', sourceChannelName = [null], sinChannelName = [null], index = 1, type = сток, параметры = карта[[пусто]], дети = список[[пусто]]]
2017-03-04T12:07:54+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — событие кэша пути: path=/deployments/modules/allocated/d634d310-12b4-4a83-baea-c1c98dfb7bba/mqtttestfile.source .mqtt.1, тип=CHILD_ADDED
2017-03-04T12:07:54+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — развертывание модуля mqtt для потока mqtttestfile 2017-03-04T12:07:54+0530 1.3.0.RELEASE INFO DeploymentsPathChildrenCache-0 container.DeploymentListener — модуль развертывания [ModuleDescriptor@5a7d8e37 moduleName = 'mqtt', moduleLabel = 'mqtt', group = 'mqtttestfile', sourceChannelName = [null], sinChannelName = [null], index = 0, type = источник, параметры = карта ['темы' -> 'helloTopic', 'url' -> 'tcp://localhost: 1883'], дети = список [[пусто]]]
2017-03-04T12:07:56+0530 1.3.0.RELEASE INFO DeploymentSupervisor-0 zk.ZKStreamDeploymentHandler — статус развертывания для потока mqtttestfile: DeploymentStatus{state=deployed}
с spring-xd 1.3.1 проблема остается нерешенной, это сообщение об ошибке, которое я видел в журнале
2017-03-05T01:15:06+0530 1.3.1.RELEASE INFO LeaderSelector-1 zk.DeploymentSupervisor — Лидерство отменено из-за прерывания потока
2017-03-05T01:15:06+0530 1.3.1.RELEASE ERROR MQTT Rec: xd.mqtt.client.id.src inbound.MqttPahoMessageDrivenChannelAdapter — Потеряно соединение: Соединение потеряно; повторная попытка...
Благодарю.