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

OSCHINA-MIRROR/vipmos-sharding-db

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

sharding-jdbc-db

Основанный на sharding-jdbc из Дамодан, этот проект представляет собой распределённую базу данных по схемам и таблицам, поддерживаемую Spring Boot 2.1.0. Поддерживает распределение по одному id и по дате.

Проект можно клонировать и добавить в Maven проект, но проект должен быть на Spring Boot 2.x, версия 1.5 не тестировалась, можно протестировать самостоятельно.

Почему был создан этот проект? На самом деле, это просто обёртка для springboot-starter проекта sharding-jdbc, чтобы можно было настроить запуск sharding-jdbc по нашим требованиям, например, распределение по id или по дате с помощью конфигурации, без необходимости создания большого количества сущностей для распределения. В этом проекте также исправлен баг с распределением по id, который не даёт целочисленных значений. Поскольку sharding-jdbc использует синтаксис Groovy, деление / может давать дробные значения, что ограничивает использование. Поэтому был создан этот обёртыватель, коллеги могут также модифицировать его по своему усмотрению.

Данные и DAO-операции в этом проекте основаны на MyBatis, исходные мапперы не требуют изменений. Sharding-jdbc действительно мощная технология, которая позволяет реализовать распределение без изменения бизнес-кода.

Шаги использования:

  1. Клонировать проект на локальную машину1. Добавить зависимость проекта com.plat sharding-db 0.0.1-SNAPSHOT

  2. Настроить springboot проект application.properties

spring.application.name=paas-demo server.port=8082 mybatis.mapper-locations=classpath:mappers/*.xml spring.devtools.restart.enabled=true

Разрешить перезапись бинов для переопределения DataSource

spring.main.allow-bean-definition-overriding=true

##========================================================== Настройка источников данных =========================================================## ######## Для версий Spring Boot 2.x параметры не должны содержать подчеркивания _, должны соответствовать правилам kebab case ########## sharding.jdbc.datasource.names=ds-common,ds-0,ds-1,ds-2018

#sharding.jdbc.datasource.dscommon.type=org.apache.commons.dbcp.BasicDataSource sharding.jdbc.datasource.ds-common.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds-common.driver-class-name=com.mysql.cj.jdbc.Driver sharding.jdbc.datasource.ds-common.url=jdbc:mysql://192.168.1.227:3306/demo_ds_common?useUnicode=true&characterEncoding=utf-8 sharding.jdbc.datasource.ds-common.username=gzlife sharding.jdbc.datasource.ds-common.password=gzlife sharding.jdbc.datasource.ds-common.filters=stat

#sharding.jdbc.datasource.ds0.type=org.apache.commons.dbcp.BasicDataSource sharding.jdbc.datasource.ds-0.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds-0.driver-class-name=com.mysql.cj.jdbc.Driver sharding.jdbc.datasource.ds-0.url=jdbc:mysql://192.168.1.227:3306/demo_ds_0?useUnicode=true&characterEncoding=utf-8 sharding.jdbc.datasource.ds-0.username=gzlife sharding.jdbc.datasource.ds-0.password=gzlife sharding.jdbc.datasource.ds-0.filters=stat

#sharding.jdbc.datasource.ds1.type=org.apache.commons.dbcp.BasicDataSource sharding.jdbc.datasource.ds-1.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds-1.driver-class-name=com.mysql.cj.jdbc.Driver sharding.jdbc.datasource.ds-1.url=jdbc:mysql://192.168.1.227:3306/demo_ds_1?useUnicode=true&characterEncoding=utf-8 sharding.jdbc.datasource.ds-1.username=gzlife sharding.jdbc.datasource.ds-1.password=gzlife sharding.jdbc.datasource.ds-1.filters=statsharding.jdbc.datasource.ds-2018.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds-2018.driver-class-name=com.mysql.cj.jdbc.Driver sharding.jdbc.datasource.ds-2018.url=jdbc:mysql://192.168.1.227:3306/demo_ds_0?useUnicode=true&characterEncoding=utf-8 sharding.jdbc.datasource.ds-2018.username=gzlife sharding.jdbc.datasource.ds-2018.password=gzlife sharding.jdbc.datasource.ds-2018.filters=stat

##========================================================== Настройки мониторинга Druid (необязательно) =========================================================##

Настройки WebStatFilter, подробности см. в документации Druid, конфигурация_WebStatFilter

Включить StatFilter по умолчанию (значение по умолчанию true)

spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.exclusions='.js,.gif,.jpg,.png,.css,.ico,/druid/*'

Настройки StatViewServlet, подробности см. в документации Druid, конфигурация_StatViewServlet

Включить StatViewServlet по умолчанию (значение по умолчанию true)

spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable=false spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=123456 spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 spring.datasource.druid.stat-view-servlet.deny=219.230.50.108

##========================================================== Конфигурация правил шардинга по базам данных и таблицам =========================================================##

Обязательная настройка, иначе будет использована исходная конфигурация sharding-jdbc

com.plat.sharding.enabled=true

По умолчанию используется база данных

com.plat.sharding.default-data-source-name=ds-common

Включение отображения SQL, значение по умолчанию: false

com.plat.sharding.props.sql.show=false####################### Конфигурация шардинга для таблицы user_info по базам данных #######################

Конфигурация алгоритма inline (один из трёх возможных алгоритмов)

com.plat.sharding.tables.user_info.database.inline.sharding-column=user_id com.plat.sharding.tables.user_info.database.inline.algorithm-expression=ds-$->{user_id % 4 % 2}

Конфигурация шардинга по времени (timer) (поддерживает шардинг по годам и месяцам)

#com.plat.sharding.tables.user_info.database.timer.sharding-column=create_time #com.plat.sharding.tables.user_info.database.timer.algorithm-expression=ds-$->{yyyy}

Конфигурация шардинга с использованием пользовательского класса

#com.plat.sharding.tables.user_info.database.coustom-class.sharding-column=create_time #com.plat.sharding.tables.user_info.database.coustom-class.precise-algorithm-class-name=$->{classname} #com.plat.sharding.tables.user_info.database.coustom-class.range-algorithm-class-name=$->{classname}

####################### Конфигурация шардинга для таблицы user_info по таблицам #######################

Конфигурация алгоритма inline

#com.plat.sharding.tables.user_info.table.inline.sharding-column=user_id #com.plat.sharding.tables.user_info.table.inline.algorithm-expression=user_info_$->{user_id % 4 / 2}

Конфигурация шардинга по времени (timer) (поддерживает шардинг по годам и месяцам)

com.plat.sharding.tables.user_info.table.timer.sharding-column=create_time com.plat.sharding.tables.user_info.table.timer.algorithm-expression=user_info_$->{yyyyMM}

Конфигурация шардинга с использованием пользовательского класса

#com.plat.sharding.tables.user_info.table.coustom-class.sharding-column=create_time #com.plat.sharding.tables.user_info.table.coustom-class.precise-algorithm-class-name=$->{classname} #com.plat.sharding.tables.user_info.table.coustom-class.range-algorithm-class-name=$->{classname}

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

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

Введение

Основанная на sharding-jdbc от Dangdang (теперь принадлежащей JD), эта реализация поддерживает распределение таблиц по базам данных для Spring Boot 2.1.0. Поддерживается распределение по одиночному идентификатору и по дате. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

Язык

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

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