CSharpFlink: вычислительная среда в реальном времени
Официальный сайт: http://www.ineuos.net/. Технический блог: https://www.cnblogs.com/lsjwq/. Адрес GitHub: https://github.com/wxzz/CSharpFlink. Адрес Gitee: https://gitee.com/wxzz/CSharpFlink. QQ автора: 504547114. Техническая группа QQ: 54256083.
1. Проект
Мы имеем общенациональную промышленную публичную облачную платформу, которая передаёт данные через выделенные линии или каналы 4G в режиме реального времени. Платформа обрабатывает около 1 миллиарда записей данных каждый день и предоставляет пользователям онлайн-сервисы в реальном времени и услуги анализа данных в автономном режиме. Платформа стабильно работает уже почти 3 года. Также мы предоставляем услуги по созданию частных облаков для промышленных предприятий.
Мы планируем использовать Flink в качестве части вычислительной среды бэкэнда нашей облачной платформы. Мы хотим реализовать основные функции, такие как агрегация точек данных, вычисление выражений и т. д., а также обеспечить поддержку машинного обучения и сложных пользовательских алгоритмов.
После почти года исследований и разработок мы уже реализовали основные функции, такие как агрегирование и логические операции. Однако мы считаем, что Flink довольно тяжёлый, и его использование и обслуживание требуют высокого уровня квалификации.
Исходя из этого, мы самостоятельно разработали набор компонентов для вычислений в реальном времени CSharpFlink, который поддерживает настраиваемые источники данных, вычисления и хранение.
2. Применение
Основные области применения включают в себя:
3. Особенности фреймворка
Особенности фреймворка включают:
4. Структура фреймворка
Базовая структура компонентов фреймворка представлена на схеме ниже:
5. Каталог кода
Разработка проекта осуществляется с помощью Visual Studio 2019. Решение проекта представлено файлом CSharpFlink.sln. Каталог кода включает следующие компоненты:
6. Конфигурационные файлы
Конфигурационный файл по умолчанию называется cfg\global.cfg. Можно создать собственный конфигурационный файл, следуя инструкциям командной строки. Описание конфигурационного файла включает:
7. Развёртывание задач
Для вторичной разработки обратитесь к разделу «Вторичная разработка». После успешного тестирования программы, созданной в рамках проекта, её можно развернуть в каталоге «tasks». Для запуска «CSharpFlink» основной программы автоматически загрузятся и вызовутся все задачи.
Можно настроить собственные задачи, следуя инструкциям командной строки.
8. Инструкции командной строки
Чтобы запустить «CSharpFlink», можно указать конфигурационный файл или список задач с помощью командной строки. Команды включают: -h — показать помощь по командной строке. -c — загрузить указанный конфигурационный файл. Например: CSharpFlink -c c:/my.cfg -t — загрузить список задач. Например: CSharpFlink -t c:/mytask.dll Пример использования:
dotnet CSharpFlink.dll -c c:/master.cfg -t c:/mytask.dll
9. Развёртывание
В каталоге «release» находится скомпилированная программа. Её можно скопировать в разные папки, изменить конфигурационный файл «cfg\global.cfg» для каждой ноды на Master или Slave, а затем запустить «dotnet CSharpFline.dll» в каждой папке.
Исходный код «TestTask.dll» можно найти в разделе «Вторичная разработка».
10. Вторичная разработка
Вторичная разработка фокусируется на источниках данных, процессах вычислений и сохранении результатов. Процесс включает:
Для этого необходимо реализовать интерфейс SinkFunction. Подробнее см.: класс SinkFunction.cs.
Структура развёртывания:
Отображение процесса:
Эффект выполнения:
iNeuOS промышленный интернет-общедоступный номер:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )