RWS — это очень маленький компонент, реализующий функцию разделения чтения и записи базы данных.
В большинстве проектов для предотвращения одиночной точки отказа используются основные и резервные серверы для обеспечения высокой доступности базы данных. В такой архитектуре основные операции выполняются на основном сервере, в то время как резервные серверы используются только для репликации данных, что является нерациональным использованием ресурсов. Поэтому можно направлять часть запросов на выполнение на резервных серверах, чтобы снизить нагрузку на основной сервер. Кроме того, если система имеет низкое соотношение чтения и записи, конкуренция за блокировки чтения и записи может снижать производительность запросов базы данных.### Функции: Компонент реализует простую функцию разделения чтения и записи через интерфейсы ReadWriteRule и LoadRule для выбора между основным и резервным серверами при получении соединения с базой данных. Также используется интерфейс LoadRule для распределения нагрузки между несколькими резервными серверами.
globalCanWrite
: Глобальная возможность записи, значение по умолчанию true, что указывает на возможность выполнения записей данным источником.writer
: Исходник для записи, используемый для получения соединения с базой данных при выполнении записей.readers
: Исходники для чтения, используемые для получения соединения с базой данных при выполнении запросов. Если список читающих источников пуст, соединение будет взято из источника записи.loadRule
: Правила распределения нагрузки, используемые для определения распределения нагрузки между несколькими читающими источниками.readWriteRules
: Правила разделения чтения и записи, используемые для определения использования источника записи или чтения при получении соединения.### Дополнительная защита:
Компонент предоставляет только базовую функциональность и не предлагает дополнительных средств защиты от отказа. Пользователи должны самостоятельно проектировать планы защиты от отказа, такие как keepalived, Amoeba и т.д.Компонент предоставляет только базовую функциональность и не решает проблему задержки между основным и резервным серверами. Для достижения сильной согласованности можно самостоятельно настроить компонент или использовать методы, позволяющие выполнять запросы к источнику записи.
В открытых сообществах уже существует множество промежуточных компонентов, но они не поддерживают все требования транзакций. Поэтому во время разработки моего проекта мне требовалось найти компонент, который бы поддерживал транзакции и предоставлял функцию разделения чтения и записи. Это позволило создать этот компонент, который позволяет контролировать разделение чтения и записи как вручную, так и автоматически по правилам.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )