1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mydataharbor-mydataharbor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.04.2025 06:29 50dbeb6


logo

обновлено GitHub-CI Просмотреть выпуски Maven-репозиторий Общее количество загрузок Открытая лицензия Список плагинов

Добро пожаловать к разработчикам фронтенда и плагинов, желающим внести свой вклад в проект. Для связи напишите мне на: 1053618636@qq.com

Введение/Позиционирование:ru 🚢 MyDataHarbor — это средство для решения задачи синхронизации данных между различными источниками данных, которое обеспечивает распределенное, масштабируемое, высокопроизводительное, надежное, почти реальное время и стабильное выполнение синхронизации данных.Оно помогает пользователям надежно, быстро и стабильно осуществлять почти реальное время синхронизацию большого объема данных или периодическую полную синхронизацию. Основное назначение — обеспечение работы в реальном времени, но также может использоваться для синхронизации данных в больших данных (область ETL).

Общая информация

В контексте микросервисов распределенное хранение данных реального времени стало нормой. Однако иногда требуется в реальном или заданном времени полностью синхронизировать эти данные в другом месте.

Например, система отдела C компании может требовать данных, созданных отделами A и B. В этом случае неизбежно возникает необходимость полной или частичной синхронизации данных. В другом случае, данные из базы данных нужно синхронизировать в реальном времени в Elasticsearch, Redis и т. д. для поиска.

Практические применения синхронизации данных очень распространены в повседневной разработке распределенных систем и являются очень важными. Любые проблемы с синхронизацией данных могут привести к несоответствию данных и вызвать другие серьезные сбои.Маленькие компании обычно модифицируют код в бизнес-системах для записи данных в целевую систему данных. Компании среднего размера разрабатывают собственные небольшие программы для синхронизации данных для каждого отдела, что не поддается управлению и не имеет мониторинга. Это приводит к тому, что для каждого нового требования разрабатывается новая программа, что является крайне расточительным и не обеспечивает стабильности. В больших компаниях обычно используется платформа для миграции данных (например, Yandex.Metrica).MyDataHarbor появился как решение для этих требований!

Основные характеристики

🚩Распределенная архитектура

MyDataHarbor представляет собой распределенный middleware, построенный на Zookeeper, который поддерживает горизонтальное масштабирование. Машины группируются в подгруппы, которые образуют подкластеры, где задачи распределяются для балансировки нагрузки и предотвращения сингл-пойнт-фейлур.

🚩Плагинная высокая гибкость

Рациональное абстрагирование и плагинная архитектура обеспечивают высокую гибкость MyDataHarbor. Любые требования к миграции данных могут быть реализованы через разработку плагинов.

🚩Поддержка транзакций

MyDataHarbor был спроектирован с учетом потери данных, и поддержка транзакций обеспечивает сохранность данных.

🚩Автоматическое описание плагинов

После установки плагина middleware автоматически распознает его возможности и создает удобный для пользователя интерфейс для создания задач, без необходимости написания сложных конфигураций JSON.

🚩Свободное комбинирование

MyDataHarbor поддерживает повторное использование различных компонентов из разных плагинов для создания нового pipeline, и это можно сделать с помощью визуализации.

🚩Мониторинг задач

Интеграция с Java JMX обеспечивает детализированный мониторинг каждой задачи, позволяя в реальном времени просматривать состояние выполнения задач.### 🚩Поддержка пакетной загрузки

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

В случае, когда 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 — это номер выпуска

mydataharbor-console

РаспаковкаРаспаковка

Настройка

Перейдите в папку 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 — просмотр текущего состояния программы

mydataharbor-server

Распаковка

Распаковка

Настройка

Измените файл 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

QQ-группа (При добавлении в группу необходимо указать количество звезд проекта, звездуйте проект и укажите количество звезд администратору)

QQ-группа

История обновлений

Версия 2.0.0

  1. Добавлен интерфейс mydataharbor.ITaskStorage, который позволяет компонентам сохранять данные в режиме реального времени во время выполнения, и предоставлено стандартное реализация через zookeeper, которая обеспечивает синхронизацию раз в секунду, не влияя на производительность.

  2. По умолчанию, информация о мониторинге задач сохраняется через интерфейс и отображается в режиме реального времени на панели управления.

  3. Функция перестроения задач после их редактирования.

  4. Изменен алгоритм перераспределения задач. При добавлении нового узла, задачи, которые имеют больше текущих задач, чем узлов для распределения задач, будут перенаправлены.

  5. В связи с тем, что версии 1.x могут использоваться меньшим количеством пользователей, из-за исправления некоторых орфографических ошибок, названия интерфейсов изменились, и версия 2.0 не совместима с 1.x. Рекомендуется переместить задачи на версию 2.0. Прошу понимания.


Исправленные моменты:

  1. "standard implementation through zookeeper" -> стандартное реализация через zookeeper -> стандартное реализация через Zookeeper

  2. "interface names have changed" -> названия интерфейсов изменились -> названия интерфейсов были изменены

Также исправлены знаки препинания и грамматические ошибки:

  1. "standard implementation through zookeeper, which ensures synchronization once per second, without affecting performance." -> стандартное реализация через Zookeeper, которая обеспечивает синхронизацию раз в секунду, не влияя на производительность.

  2. "interface names have changed, and version 2.0 is not compatible with 1.x." -> названия интерфейсов были изменены, и версия 2.0 не совместима с 1.x.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mydataharbor-mydataharbor.git
git@api.gitlife.ru:oschina-mirror/mydataharbor-mydataharbor.git
oschina-mirror
mydataharbor-mydataharbor
mydataharbor-mydataharbor
main