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

OSCHINA-MIRROR/itopener-itopener-canal-es

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект

На основе Canal разработан клиент Canal, который получает данные после анализа MySQL Binlog и отправляет в базу данных необходимые для Elasticsearch данные, которые затем сохраняются в Elasticsearch. Основная задача — разносить данные из MySQL в Elasticsearch и использовать Elasticsearch для запросов, чтобы повысить эффективность поиска.

Архитектура программного обеспечения

Разработка ведётся с использованием Spring Boot 2.0.1.RELEASE. В качестве клиента Canal используется автоматическое обнаружение Canal на основе Zookeeper. Данные обрабатываются в нескольких модулях:

  • canal-es: запуск и настройка сервиса;
  • canal-es-core: основной модуль, получающий данные от Canal и вызывающий соответствующую обработку;
  • canal-es-ext: дополнительный модуль, расширяющий поиск и сохранение данных в Elasticsearch для поддержки пользовательских разнородных данных (с примерами);
  • canal-es-admin: административный модуль для управления и статистики. На данный момент разработка не завершена.

Использование

Инструмент предназначен для синхронизации данных MySQL с Elasticsearch. Основной сценарий использования — разноска данных, когда требуется выполнять сложные запросы к базе данных, включая объединение нескольких таблиц или отношения «один ко многим». Инструмент ориентирован на разработчиков, которым необходимо настраивать обработку разнородных синхронизированных данных.

Для получения дополнительной информации о Canal обратитесь к документации на GitHub: https://github.com/alibaba/canal.

В данном инструменте используется форк ветки (основные изменения касаются определения типа координат как значения вместо использования Types.OTHER для упрощения различения и последующей обработки): https://github.com/dengfuwei/canal.

  1. Сначала запустите сервер Canal.
  2. Расширьте обработку разнородных синхронных данных в canal-es-ext. Основные компоненты включают:
    • handler: определяет, какие события изменений данных в каких таблицах базы данных обрабатывать, а также выполняет соответствующие запросы к базе данных и сохраняет результаты в Elasticsearch;
    • model: классы, соответствующие данным в Elasticsearch;
    • repos: Repository для операций добавления, удаления и изменения данных в Elasticsearch с использованием spring data elasticsearch.

Если требуется настроить несколько источников данных, это можно сделать в canal-es, а затем использовать соответствующий jdbcTemplate в canal-es-ext. 3. Измените конфигурацию в canal-es и запустите сервис. В настоящее время поддерживается только обнаружение сервера Canal через Zookeeper, и планируется сохранить этот подход для удобства горизонтального масштабирования и развёртывания узлов.

Комментарии ( 0 )

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

Введение

На основе canal данные синхронизируются с Elasticsearch, можно настроить расширение данных для синхронизации. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/itopener-itopener-canal-es.git
git@api.gitlife.ru:oschina-mirror/itopener-itopener-canal-es.git
oschina-mirror
itopener-itopener-canal-es
itopener-itopener-canal-es
master