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

OSCHINA-MIRROR/lang_junnan-dataprocess

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

dataprocess

Проектная цель:

С развитием бизнес-системы объём данных в базе данных постепенно увеличивается, что приводит к замедлению работы многих интерфейсных запросов в повседневной работе системы. Иногда даже возникают проблемы с чтением и тайм-аутом. Для оптимизации проекта и повышения производительности системы мы хотим эффективно использовать кэш или поисковый движок ElasticSearch для более эффективного запроса данных. Однако возникает вопрос: как синхронизировать данные с ES, Redis или другими контейнерами? Dataprocess поможет вам реализовать функцию реального времени для создания отчётов о данных и может помочь вам решить около 30% сложных проблем в корпоративных проектах. Например, текущая архитектура естественным образом решает такие проблемы, как лавинный эффект кэша Redis и проникновение кэша.

Синхронизация данных:

Поскольку это поисковая система, требования к своевременности данных очень высоки, поэтому мы используем Canal с открытым исходным кодом от Alibaba для мониторинга основных операций базы данных, таких как MySQL-Master. Canal можно рассматривать как ведомый экземпляр реляционной базы данных. Canal прошёл через множество итераций и стал зрелым продуктом. Canal также интегрирован с RocketMq и Kafka, которые могут напрямую отправлять данные из базы данных в MQ. Пользователю нужно только отслеживать сообщения в очереди сообщений. В этом проекте используется RocketMQ.

Роль dataprocess:

Mysql —> Canal —> RocketMQ —> dataproces предоставляет функции режима слушателя и режима цепочки ответственности. Режим слушателя автоматически подписывается на данные, и пользователь может использовать его по мере необходимости. Обе модели предоставляют внешние интерфейсы для добавления, удаления, изменения, индексации, отката, перехвата исключений, предварительного и последующего перехвата. Функции перехватчиков по умолчанию отключены, и пользователи могут настроить их в файле конфигурации. Dataprocess в основном отвечает за мониторинг источников данных, адаптацию источников данных, анализ данных, проверку данных, управление прокси-серверами и создание цепочек ответственности или подписку на режимы прослушивания. Обе модели могут реализовывать бизнес-логику. Они определяются пользователями, просто написав классы, реализующие ChainTemplate или ObserverTemplate, и помещая их в пакет com.dataprocess.databases. Все классы в пакете будут образовывать цепочку или будут уведомлены наблюдателем. Текущее выполнение цепочки или наблюдателя может совместно управляться dataprocess и Spring. Цепочка или класс наблюдателя, которые не выполняются, управляются Spring самостоятельно. Когда происходит изменение в определённой таблице в определённом источнике данных, dataprocess будет выполнять цепочку или наблюдатель, соответствующий этой таблице. Каждый класс реализации цепочки или наблюдателя предоставляет некоторые открытые методы интерфейса, такие как добавление, изменение, удаление, создание индекса, перехват исключений и перехватчики. Когда в таблице происходят изменения, они предоставляются пользователю в форме фильтров или наблюдателей для добавления/изменения/удаления, перехвата исключений и перехватчиков. Пользователям нужно только сосредоточиться на создании функций добавления, изменения и удаления, регистрации исключений и т. д., а dataproprocess также предоставляет функции кеширования и сложных запросов ElasticSearch.

Сценарии использования:

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

Технические точки проекта:

  1. Базовая среда jdk1.8.
  2. MySQL 5.5.
  3. Canal.deployer-1.1.5.
  4. RocketMQ-all-4.3.0-bin-release.
  5. ElasticSearch-7.16.2-windows-x86_64.
  6. Redis-x64-5.0.14.
  7. SpringBoot2.6 интегрирует ElasticSearch & Redis для выполнения CRUD.
  8. SpringBoot2.6 интегрируется с ElasticSearch для сложных запросов.

Структура системы:

com.dataprocess.common — инструменты для бизнеса, созданные пользователями в этом пакете. com.dataprocess.core — основной пакет. Не рекомендуется изменять код в этом пакете, если это не связано со структурой проекта или архитектурой. com.dataprocess.core.adapter — пакет адаптера. com.dataprocess.core.builder — пакет строителя. com.dataprocess.core.common — основные инструменты. com.dataprocess.core.factory — пакет фабрики. com.dataprocess.core.interceptor — пакет перехватчика. com.dataprocess.core.handler — пакет обработчика. com.dataprocess.core.subject — тема подписки на прослушиватель. com.dataprocess.core.template — шаблонный пакет, включая шаблоны цепочки ответственности и шаблоны наблюдателей. com.dataprocess.databases — пакет обработки данных. Этот пакет специально предоставлен пользователям. В этом пакете первый пакет представляет собой имя базы данных, а второй пакет — имя таблицы. Пользователи должны создавать классы фильтров в текущем пакете таблиц в соответствии со спецификациями и выполнять последующую бизнес-обработку. com.dataprocess.databases.. — пример пакета: godnan — это база данных bpm, merchant — таблица в базе данных bpm. com.dataprocess.es.api — интерфейс es, предоставляющий запросы, включая сложные запросы. com.dataproprocess.es.dao — операции es на уровне dao. com.dataprocess.es.entity — документы es. com.dataprocess.es.index — индекс документа es. com.dataprocess.init — инициализация индекса es. com.dataprocess.interceptor — предоставленный пользователем пакет перехватчика. com.dataprocess.mq — прослушивание сообщений, отправленных rocketmq. com.dataprocess.redis — информация о конфигурации redis.

Примечание: в запросе присутствуют изображения, но они не были включены в перевод. Также в тексте запроса есть ссылки, которые также не были добавлены в ответ. 5. Схема паттерна цепочки ответственности: в пакете com.dataprocess.databases.. произвольно создайте класс или несколько классов, реализующих абстрактный класс ChainTemplate. Эти классы будут управляться системой, и пользователь будет решать, выполнять ли следующий класс. Псевдокод выглядит следующим образом:

result = getNext().insertData(obj)

или же можно упаковать запрос с параметрами для выполнения определённого класса после завершения бизнес-логики в этом классе. Этот класс предоставляет методы insertData, updateData, deleteData и соответствующие методы отката insertDataRollBack, updateDataRollBack и deleteDataRollBack.

  1. Важно обратить внимание на то, что по умолчанию создаётся строитель OrdinaryBuilder. Мы также подготовили для вас прокси-строитель ProxyBuilder, который позволяет включить функцию «грязной машины». Перехватчики предоставляют предварительный перехватчик ProxyBefore и пост-перехватчик ProxyAfter. Пользователю нужно только написать класс реализации, который реализует интерфейс перехватчика, чтобы реализовать свои собственные бизнес-функции.

  2. Возможность использования или включения прокси-строителя настраивается в файле конфигурации application.properties. По умолчанию режим прокси не включён (open.proxy=false), и функция перехватчика также не включена. При включении режима прокси необходимо учитывать, что все свойства всех классов, наследуемых от абстрактных классов ChainTemplate и ObserverTemplate, должны иметь методы GET и SET, иначе при выполнении возникнет непредвиденная ошибка, поскольку все классы в настоящее время проксируются dataprocess, и все классы, выполняемые на этот раз, управляются одновременно Spring и dataprocess. В частности, используется поверхностное копирование, поэтому необходимо добавить методы GET и SET ко всем свойствам.

7 es связанные службы запросов могут быть написаны в com.dataprocess.es. 8 Найдите класс DataProcessApplication и запустите его. Убедитесь, что проект может запуститься и консоль не выдаёт ошибок.

Код вклада (добро пожаловать присоединиться)

Если вы заинтересованы в участии в разработке проекта, пожалуйста, свяжитесь со мной по личному адресу электронной почты: 1419052183@qq.com. Кодирование непросто. Если вы считаете, что это полезно для вас, пожалуйста, поставьте звёздочку (Star).

Также принимаются ваши ценные предложения. Принимаем критику. Спасибо!

Группа общения

maven быстрое подключение, пожалуйста, прочтите https://gitee.com/lang_junnan/dataprocess-spring-boot-starter

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

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

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

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

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