Sharding-Sphere представляет собой экосистему открытых распределённых баз данных, состоящую из трёх независимых продуктов: Sharding-JDBC, Sharding-Proxy и Sharding-Sidecar (плановый).
Эти продукты предоставляют стандартизованные функции шардинга данных, распределённых транзакций и управления базами данных, что делает их применимыми для различных сценариев использования, включая Java-подобные, контейнеры, облачные приложения и другие.
Широко используется как легковесный Java-фреймворк, который предоставляет дополнительные услуги над уровнем JDBC. Он использует прямое соединение клиента с базой данных в виде jar-пакета, не требуя дополнительной установки или зависимостей. Это можно рассматривать как улучшенный JDBC-драйвер, полностью совместимый с JDBC и различными ORM-фреймворками.
Широко используется как агент базы данных для Kubernetes или Mesos, который работает в виде DaemonSet для проксирования всех запросов к базе данных. Он предоставляет слой взаимодействия с базой данных через безцентровую и независимую от приложений схему, известную как Database Mesh или сетка баз данных. Database Mesh фокусируется на том, как связать распределённые приложения доступа к данным с базами данных, уделяя особое внимание взаимодействию между приложениями и базами данных. Используя Database Mesh, приложения и базы данных могут образовать единую сетевую систему, где каждое приложение и каждая база данных занимают своё место в этой сети.
Разделение баз данных осуществляется двумя способами: вертикальное разделение и горизонтальное разделение.
Вертикальное разделение: вертикальное разделение таблиц и вертикальное разделение баз данных
Горизонтальное разделение: горизонтальное распределение таблиц и горизонтальное распределение баз данных
Вертикальное разделение таблиц -----> разделение по столбцам
Горизонтальное разделение таблиц -----> разделение по строкам
Вертикальное разделение баз данных -----> разделение по бизнес-логике, специализированные базы данных для специализированных таблицГоризонтальное разделение баз данных -----> хранение данных в нескольких таблицах с одинаковой структурой данных
(1) Операция с таблицей в базе данных, часть полей этой таблицы перемещаются в новую таблицу, а другая часть полей перемещаются в ещё одну таблицу.
(1) Одна база данных разделяется по бизнес-логике, специализированные базы данных для специализированных таблиц.
1. Применение
(1) При проектировании базы данных следует учитывать вертикальное разделение баз данных и таблиц
(2) По мере увеличения объёма данных в базе данных, сразу же не следует рассматривать горизонтальное разделение. Сначала следует рассмотреть использование кэширования, разделение чтения и записи, использование индексов и другие методы. Если эти методы не решают проблему, тогда можно рассмотреть горизонтальное разделение баз данных и таблиц
2. Проблемы разделения баз данных и таблиц(1) Проблемы кросс-узловой связи и запросов (пагинация, сортировка)
(2) Проблемы управления несколькими источниками данных
Это легковесный Java-фреймворк, являющийся улучшенным JDBC-драйвером.
Основная цель Sharding-JDBC: упрощение работы с данными после разделения баз данных и таблиц.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )