作者 陈彩华 贝聊Java后端工程师
文章转载交流请联系 caison@aliyun.com
Недавно я изучил учебник по архитектурному проектированию по разделению чтения и письма от Ли Юньхуа, старшего технического эксперта Alibaba.Я многому научился.Позвольте мне подытожить.
Эта статья в основном знакомит с теорией, базовой архитектурой, проблемами сложности и общими решениями разделения чтения и записи высокопроизводительного кластера базы данных.
1 Обзор разделения чтения-записи
Схема базовой архитектуры:
2 Применимые сценарии
Разделение чтения-записи — это не серебряная пуля, и это не вопрос разделения чтения-записи, как только возникает проблема с производительностью., но должны быть оптимизированы в первую очередь, например, оптимизация медленных запросов, корректировка необоснованной бизнес-логики, введение кэш-запросов и т. д. Только после того, как будет определено, что в системе нет места для оптимизации, следует рассматривать кластер разделения чтения-записи.
3 Введена сложность системы
Проблема 1 Задержка репликации Master-Slave
Вопрос 2 Механизм распределения
Как разделить операции чтения и записи, а затем получить доступ к разным серверам баз данных?
Решение 1 Реализация инкапсуляции кода клиентской программы
Схема базовой архитектуры
Внедрение отраслевого ПО с открытым исходным кодом
- Sharding-JDBC Позиционируемый как облегченная платформа Java, он предоставляет дополнительные услуги на уровне Java JDBC. Он использует клиент для прямого подключения к базе данных и предоставляет услуги в виде пакетов jar без дополнительного развертывания и зависимостей.Его можно понимать как расширенную версию драйвера JDBC, полностью совместимую с JDBC и различными ORM-фреймворками.
- Таобао ТДДЛ Taobao разработала структуру TDDL (уровень распределенных данных Taobao) в соответствии с собственными потребностями бизнеса, которая в основном используется для решения маршрутизации доступа (взаимодействия между уровнем сохраняемости и уровнем доступа к данным) в сценарии подбазы данных и подбазы данных. синхронизация таблиц и данных между разнородными базами данных.Это реализация JDBC DataSource, основанная на централизованной конфигурации, с такими функциями, как подтаблица подбазы данных, Master/Salve и конфигурация динамического источника данных.
Решение 2. Инкапсуляция промежуточного программного обеспечения на стороне сервера
Схема базовой архитектуры
Внедрение отраслевого ПО с открытым исходным кодом
- MySQL официально рекомендуемый маршрутизатор MySQL
MySQL Router — это легкое промежуточное ПО, которое обеспечивает прозрачную маршрутизацию между приложениями и любыми внутренними серверами MySQL. Его можно использовать для самых разных вариантов использования, таких как обеспечение высокой доступности и масштабируемости за счет эффективной маршрутизации трафика базы данных на соответствующий внутренний сервер MySQL. Подключаемая архитектура также позволяет разработчикам расширять MySQL Router для пользовательских вариантов использования.
На базе MySQL Router могут быть реализованы такие функции, как разделение чтения и записи, автоматическое переключение при отказе, балансировка нагрузки и объединение соединений.
-
MySQL Proxy официально предоставлен MySQL
-
360 Атлас с открытым исходным кодом
Atlas — это проект среднего уровня данных, основанный на протоколе MySQL, который разрабатывается и поддерживается командой инфраструктуры отдела платформ. Он оптимизирован на базе mysql-proxy и дополнен некоторыми новыми функциями.
Сравнение общего промежуточного программного обеспечения базы данных с открытым исходным кодом
Функции | Sharding-JDBC | TDDL | Amoeba | Cobar | MyCat |
---|---|---|---|---|---|
Клиент-или сервер | клиент | клиент | Сервер | Сервер | Сервер |
Подбиблиотека и подтаблица | имеют | имеют | имеют | имеют | имеют |
Интерактивный протокол MySQL | JDBC Driver | JDBC Driver | Интерфейс с NIO, сервер с JDBC Driver | Внешний интерфейс с NIO, внутренний с BIO | И передняя, и задняя части используют NIO |
поддерживаемые базы данных | любой | любой | любой | MySQL | любой |
Более интересно, добро пожаловать на официальный аккаунт автора [архитектура распределенной системы]