Добро пожаловать к разработчикам фронтенда и плагинов, желающим внести свой вклад в проект. Для связи напишите мне на: 1053618636@qq.com
В контексте микросервисов распределенное хранение данных реального времени стало нормой. Однако иногда требуется в реальном или заданном временном интервале полностью синхронизировать данные в другом месте.
Например, система отдела C компании может требовать данных, созданных отделами A и B. В этом случае неизбежна полная или частичная синхронизация данных. В другом случае, данные из базы данных нужно синхронизировать в реальном времени в Elasticsearch, Redis и т.д. для поиска.
Практические применения синхронизации данных очень распространены в повседневной разработке распределенных систем и являются очень важными. Любые проблемы с синхронизацией данных могут привести к несоответствию данных и другим серьезным аномалиям.Маленькие компании обычно модифицируют код в бизнес-системах для записи данных в целевую источник данных. Компании среднего размера разрабатывают собственные небольшие программы для синхронизации данных для каждого отдела, что не поддается управлению и не имеет мониторинга. Это приводит к тому, что для каждого нового требования разрабатывается новая программа, что является крайне расточительным и не обеспечивает стабильности. В больших компаниях обычно используется платформа для миграции данных (например, Yandex.Metrica).MyDataHarbor появился как решение для этих требований!
MyDataHarbor представляет собой распределенный middleware, построенный на Zookeeper, который поддерживает горизонтальное масштабирование. Машины группируются в подгруппы, которые образуют подкластеры, в которых задачи распределяются для балансировки нагрузки и предотвращения однопунктных отказов.
Рациональное абстрагирование и плагинная архитектура обеспечивают высокую гибкость MyDataHarbor. Любые требования к миграции данных могут быть реализованы через разработку плагинов.
MyDataHarbor был спроектирован с учетом потери данных, включая поддержку микротранзакций, что гарантирует, что данные будут успешно записаны хотя бы один раз, обеспечивая сохранность данных.
После установки плагина middleware автоматически распознает его возможности и создает удобный для пользователя интерфейс для создания задач, без необходимости написания сложных конфигураций JSON.
MyDataHarbor поддерживает повторное использование различных компонентов из различных плагинов для создания нового pipeline, и это можно сделать с помощью визуализации.### 🚩Мониторинг задач
Интеграция с Java JMX обеспечивает детализированный мониторинг каждой задачи, позволяя в реальном времени просматривать состояние выполнения задач.
Для источников данных, поддерживающих пакетную загрузку, предусмотрены специальные интерфейсы, что повышает скорость миграции данных, превращая мотоцикл в автомобиль.
В случае, когда DataSource не позволяет параллельную загрузку данных (например, при использовании jdbc-курсора), внутри системы внедряется модель параллельного обработки ForkJoin, которая позволяет запускать несколько потоков. Благодаря гибкому управлению транзакциями, скорость работы значительно увеличивается, при этом обеспечивается стабильность и целостность данных.
MyDataHarbor зависит только от middleware Zookeeper, который состоит из двух компонентов: mydataharbor-console и mydataharbor-server.
Для получения дополнительной информации перейдите по ссылке: https://mydataharbor.yuque.com/staff-tzwgrd/uqew9p/pckin3
Установка MyDataHarbor очень проста (перед запуском убедитесь, что у вас есть кластер Zookeeper):
Ссылка для скачивания: https://github.com/mydataharbor/mydataharbor/releases Список файлов для скачивания: mydataharbor-console-xxx-bin.tar.gz mydataharbor-server-xxx-bin.tar.gz
xxx — это номер выпуска
Перейдите в каталог config и измените файл application.yml. Основные параметры для изменения:
server:
port: 8080 # порт запуска консоли
zk: 127.0.0.1:2181 # адрес Zookeeper
На Windows запустите start.bat
На Linux запустите start.sh, остановить stop.sh
Скрипт start.sh поддерживает параметры jmx, debug, status, например:
start.sh jmx — запуск поддержки удаленного мониторинга jmx
start.sh debug — запуск удаленного отладчика
start.sh status — просмотр текущего состояния программы
Измените файл system.yml в каталоге config
zk: ["127.0.0.1:2181"] # адрес Zookeeper
port: 1299 # порт запуска сервера
group: biz001 # группа, к которой относится узел
pluginRepository: http://127.0.0.1:8080 # адрес репозитория плагинов
На Windows запустите start.bat
На Linux запустите start.sh, остановить stop.sh
Скрипт start.sh поддерживает параметры jmx, debug, status, например:
start.sh jmx — запуск поддержки удаленного мониторинга jmx
start.sh debug — запуск удаленного отладчика
start.sh status — просмотр текущего состояния программы
Перейдите по адресу: mydataharbor-console http://127.0.0.1:8080
Убедитесь, что вы видите запущенный узел
Пример запуска demo: http://demo.mydataharbor.comМаркетплейс плагинов: https://www.mydataharbor.com/user/info.html
Документация (Yuque): https://mydataharbor.yuque.com/staff-tzwgrd/uqew9p
Добавлен интерфейс mydataharbor.ITaskStorage
, который позволяет компонентам сохранять данные в режиме реального времени во время выполнения, и предоставлено стандартное реализация через Zookeeper, которая обеспечивает синхронизацию раз в секунду, не влияя на производительность.
По умолчанию, информация о мониторинге задач сохраняется через интерфейс и отображается в режиме реального времени на панели управления.
Функция перестроения задач после их редактирования.
Изменен алгоритм перераспределения задач. При добавлении нового узла, задачи, которые имеют больше текущих задач, чем узлов для распределения задач, будут перенаправлены.
В связи с тем, что версии 1.x могут использоваться меньшим количеством пользователей, из-за исправления некоторых орфографических ошибок, названия интерфейсов изменились, и версия 2.0 не совместима с 1.x. Рекомендуется переместить задачи на версию 2.0. Прошу понимания.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )