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

OSCHINA-MIRROR/lkclkc88-RWS

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

RWS

RWS — это очень маленький компонент, реализующий функцию разделения чтения и записи базы данных.

Общие сведения:

В большинстве проектов для предотвращения одиночной точки отказа используются основные и резервные серверы для обеспечения высокой доступности базы данных. В такой архитектуре основные операции выполняются на основном сервере, в то время как резервные серверы используются только для репликации данных, что является нерациональным использованием ресурсов. Поэтому можно направлять часть запросов на выполнение на резервных серверах, чтобы снизить нагрузку на основной сервер. Кроме того, если система имеет низкое соотношение чтения и записи, конкуренция за блокировки чтения и записи может снижать производительность запросов базы данных.### Функции: Компонент реализует простую функцию разделения чтения и записи через интерфейсы ReadWriteRule и LoadRule для выбора между основным и резервным серверами при получении соединения с базой данных. Также используется интерфейс LoadRule для распределения нагрузки между несколькими резервными серверами.

  • ReadWriteDataSource: Основной класс для реализации разделения чтения и записи. Предоставляет следующие свойства:
    • globalCanWrite: Глобальная возможность записи, значение по умолчанию true, что указывает на возможность выполнения записей данным источником.
    • writer: Исходник для записи, используемый для получения соединения с базой данных при выполнении записей.
    • readers: Исходники для чтения, используемые для получения соединения с базой данных при выполнении запросов. Если список читающих источников пуст, соединение будет взято из источника записи.
    • loadRule: Правила распределения нагрузки, используемые для определения распределения нагрузки между несколькими читающими источниками.
    • readWriteRules: Правила разделения чтения и записи, используемые для определения использования источника записи или чтения при получении соединения.### Дополнительная защита: Компонент предоставляет только базовую функциональность и не предлагает дополнительных средств защиты от отказа. Пользователи должны самостоятельно проектировать планы защиты от отказа, такие как keepalived, Amoeba и т.д.

Проблема задержки основного и резервного серверов:

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

Причины разработки компонента:

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

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

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

Введение

Компоненты для малого разделения операций чтения и записи в базе данных. Реализовано малое разделение операций чтения и записи базы данных. В настоящее время обеспечивается ручное разделение операций чтения и записи или предоставляется разделение операций чтения и записи с управлением через объекты Spring. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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