Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Eclipse Hono поддерживает Apache Kafka для обмена сообщениями

Eclipse Hono - это проект с открытым исходным кодом для подключения большого количества разнородных устройств к (облачной) серверной части. Hono определяет сервисные интерфейсы, которые обеспечивают единообразную связь между устройствами, которые могут использовать самые разные протоколы, а также бизнес-приложениями. Проект существует уже некоторое время и уже несколько лет успешно используется в Bosch IoT Device Management. Новым является то, что теперь он поддерживает Apache Kafka для обмена сообщениями. В этой статье представлены полученные преимущества и изменения в использовании Hono.

Данные, поступающие от устройств, преобразуются в Hono в единый формат сообщения с помощью адаптеров протокола . (например, есть некоторые для MQTT, HTTP и CoAp) и передаются в систему обмена сообщениями. Бизнес-приложения читают эти сообщения, которые являются либо сообщениями телеметрии . или события , прямо из системы обмена сообщениями (они также могут использовать Command and Control для отправки сообщений на устройства и получения ответов). Для обмена сообщениями, который не является частью Hono, но должен предоставляться извне, до сих пор использовался протокол AMQP 1.0.

Начиная с версии 1.7, Hono поддерживает Apache Kafka для обмена сообщениями в качестве технической предварительной версии . . Ключевой особенностью Hono является определение и реализация API-интерфейсов для пересылки сообщений в систему обмена сообщениями и из нее. Поскольку определения API основаны на обмене сообщениями и напрямую зависят от его свойств, поддержка новой системы обмена сообщениями является фундаментальным нововведением для Hono. Для всех API обмена сообщениями в Hono ( телеметрия , событие , а также управление ) были созданы новые спецификации на основе Kafka, ориентированные как на адаптер протокола, так и на бизнес-приложение. Было уделено внимание тому, чтобы они вели себя как можно более похоже на API на основе AMQP.

Преимущества

Apache Kafka - это платформа распределенной потоковой передачи событий, разработанная для очень высокой пропускной способности и обеспечивающая определенные гарантии в порядке сообщений. Он отлично подходит для требований Hono в отношении обмена сообщениями по нескольким причинам. Ключевые преимущества:

Изменения

AMQP 1.0 - это протокол связи, в котором одноранговые узлы соединяются друг с другом для обмена сообщениями. Напротив, кластер Kafka состоит из брокеров, которые координируют запись (и чтение) данных в постоянное хранилище. Это различие имеет два последствия:во-первых, сообщение доступно для поиска в течение некоторого времени, прежде чем оно в конечном итоге будет удалено. Для достижения этого эффекта в Hono с AMQP обычно предоставляется отдельный брокер сообщений, в котором события хранятся, чтобы избежать потери сообщений в случае временной недоступности бизнес-приложения. С Kafka каждое сообщение сохраняется. Сюда входят сообщения телеметрии (время хранения, однако, зависит от конфигурации тем телеметрии в кластере Kafka). Во-вторых, связь через постоянное хранилище отделяет операции отправки и получения друг от друга:адаптер протокола больше не может отправлять отчеты на устройство, если в настоящее время нет подключенного потребителя. Вместо этого он просто сохраняет сообщения, не «зная», прочитает ли их бизнес-приложение и когда оно будет.

Пробуем

При установке Hono вам необходимо развернуть либо сеть обмена сообщениями AMQP, либо кластер Kafka. Также есть возможность настроить Hono для использования обоих системы обмена сообщениями. Затем каждый клиент (подмножество устройств и конфигурации) можно настроить для использования AMQP или Kafka. Проект Hono предоставляет общедоступную среду песочницы в Интернете, где вы можете экспериментировать с Hono, используя AMQP или обмен сообщениями на основе Kafka.

Практический пример

Далее мы рассмотрим небольшой пример использования обмена сообщениями на основе Apache Kafka в песочнице Hono. Вы отправите сообщение телеметрии адаптеру протокола HTTP, а затем прочитаете его из кластера Kafka.

Мы моделируем устройство с выходом в Интернет, отправляя HTTP-команды из командной строки. Для этого мы используем популярный инструмент с открытым исходным кодом curl . . Если в настоящее время не установлен на вашем компьютере, обратитесь к инструкциям по установке на домашней странице curl. Для моделирования бизнес-приложения мы используем клиент командной строки Hono, который можно загрузить со страницы загрузки Hono. Обратите внимание, что для запуска Java должна быть установлена ​​как минимум версия 11.

Если какая-либо из команд, показанных ниже, не работает (что всегда может произойти с такими инструкциями), обратитесь к Руководству по обмену сообщениями Kafka, где объяснения содержат более подробную информацию.

Регистрация устройства

Во-первых, вам нужно создать нового клиента в песочнице, чтобы не мешать другим пользователям. Следующая команда создает клиента со случайным идентификатором и настраивает его на использование Kafka для обмена сообщениями.

$ curl -i -H "content-type:application / json" --data-binary '{ "ext":{ "тип сообщения":"кафка" } } 'http://hono.eclipseprojects.io:28080/v1/tenants

Вывод должен содержать что-то вроде: {"id":"85f63e23-1b78-4156-8500-debcbd1a8d35"} .

Теперь скопируйте этот идентификатор и установите его как переменную среды следующим образом:

$ экспорт MY_TENANT =85f63e23-1b78-4156-8500-debcbd1a8d35

Зарегистрируйте устройство для арендатора:

$ curl -i -X ​​POST http://hono.eclipseprojects.io:28080/v1/devices/$MY_TENANT

и еще раз укажите возвращенный идентификатор как переменную среды следующим образом:

$ экспорт MY_DEVICE =4412abe2-f219-4099-ae14-b446604ae9c6

Наконец, установите пароль для устройства:

$ экспорт MY_PWD =мой-pwd $ curl -i -X ​​PUT -H "content-type:application / json" --data-binary '[{ "тип":"хеш-пароль", "auth-id":"'$ MY_DEVICE'", "секреты":[{ "pwd-plain":"'$ MY_PWD'" }] }] 'http://hono.eclipseprojects.io:28080/v1/credentials/$MY_TENANT/$MY_DEVICE

Отправка сообщения

Теперь, когда вы зарегистрировали устройство, вы можете отправлять и получать сообщения.

Откройте второе окно терминала, чтобы получать сообщения. Перейдите в каталог, в который вы скачали клиент командной строки Hono. Теперь запустите клиент с помощью следующей команды, заменив my-tenant с идентификатором только что созданного клиента:

# в каталоге, в который был загружен файл hono-cli - * - exec.jar $ java -jar hono-cli - * - exec.jar --spring.profiles.active =получатель, песочница, kafka --tenant.id ="my-tenant"

Клиент готов к приему сообщений, если вывод содержит строку, подобную следующей:
10:23:01.807 [vert.x-eventloop-thread-0] INFO org.eclipse.hono.cli. app.Receiver - Receiver [tenant:85f63e23-1b78-4156-8500-debcbd1a8d35, mode:all] успешно создан, нажмите ctrl-c для выхода

Теперь вы можете отправить сообщение со своего смоделированного устройства в Хоно. Для этого вернитесь в первое окно терминала. Следующая команда отправляет сообщение телеметрии адаптеру протокола HTTP:

$ curl -i -u $ MY_DEVICE @ $ MY_TENANT:$ MY_PWD -H "content-type:application / json" --data-binary '{"temp":42}' http://hono.eclipseprojects.io:8080 / телеметрия

Теперь сообщение должно быть напечатано во втором терминале.

Вы также можете отправить событие :

$ curl -i -u $ MY_DEVICE @ $ MY_TENANT:$ MY_PWD -H "content-type:application / json" --data-binary '{"hello":"kafka"}' http://hono.eclipseprojects.io :8080 / событие

Надеюсь, теперь вы успешно отправили сообщения с устройства в Hono и получили их из кластера Kafka. В качестве следующего шага вы можете взглянуть на более подробные примеры в Руководстве по обмену сообщениями Hono Kafka. Здесь также показано, как отправить команду из бизнес-приложения на устройство и ответить на нее. Если вы хотите копнуть глубже, вы можете взглянуть на спецификации API на основе Kafka, которые можно найти в Спецификациях API Hono.

Заключение

Система обмена сообщениями является основой основных функций Eclipse Hono, поскольку ее интерфейсы предоставляются поверх нее. Поддержка Kafka вместе с AMQP 1.0 - это очень глубокое изменение для Hono, где большое внимание было уделено обеспечению того, чтобы интерфейсы можно было легко сопоставить друг с другом. Ключевыми преимуществами Kafka являются его масштабируемость, гарантии заказа, широкое распространение и богатство предложений коммерческих услуг. Основные отличия от обмена сообщениями с AMQP заключаются в том, что все типы сообщений передаются через посредников. Это означает, что сообщения могут быть доставлены, даже если получатель был отключен на мгновение. Связь также разделена по времени, так что прямая обратная связь от получателя к отправителю сообщения больше невозможна. На кратком практическом примере мы показали вам, как отправлять сообщения с моделируемого устройства в песочницу Hono и получать их из кластера Kafka.


Промышленные технологии

  1. Критические температуры для сверхпроводников
  2. Диэлектрическая прочность изоляторов
  3. Правила для производных инструментов
  4. Правила для антипроизводных
  5. Выпуск нового реестра устройств на основе MongoDB в Eclipse Hono
  6. Выпущено Eclipse Hono 1.0.0:открытая платформа для подключения к Интернету вещей
  7. Аутентификация устройства на основе X.509 в Eclipse Hono
  8. Печатные платы для суровых условий
  9. Дизайн для производства печатных плат
  10. Производство печатных плат для 5G