1. Установить Go-язык (версия 1.6 и выше), конкретные шаги см. в Google.
2. git clone https://github.com/flike/kingshard.git src/github.com/flike/kingshard
3. cd src/github.com/flike/kingshard
4. source ./dev.sh
5. make
6. Настройка конфигурационного файла
7. Запустить kingshard: ./bin/kingshard -config=etc/ks.yaml
# Адрес и порт kingshard
addr: 0.0.0.0:9696
# Имя пользователя и пароль для подключения к kingshard
user: kingshard
password: kingshard
# Порт web API kingshard
web_addr: 0.0.0.0:9797
# Имя пользователя и пароль для вызова API
web_user: admin
web_password: admin
# Уровень логирования, [debug|info|warn|error], по умолчанию error
log_level: debug
# Включить SQL-логирование, установить в on; выключить SQL-логирование, установить в off
log_sql: on
# Если установлено, то выводить только SQL-запросы с временем выполнения больше slow_log_time (в миллисекундах), иначе выводить все SQL-запросы
slow_log_time: 100
# Путь к файлу журнала, если не настроен, вывод будет на терминал
log_path: /Users/flike/log
# Файл чёрного списка SQL, все запросы из этого файла будут отклонены kingshard
blacklist_sql_file: /Users/flike/blacklist
# Разрешить подключение только указанным IP-адресам, если не настроено, ограничений на IP нет
allow_ips: 127.0.0.1
# Набор символов, используемый kingshard, если не установлен, используется utf8
proxy_charset: utf8mb4
# Один узел представляет собой один фрагмент данных MySQL-кластера, включая один главный и несколько подчинённых (можно без подчинённых)
nodes:
-
# Имя узла
name: node1
# Максимальное количество свободных соединений в пуле соединений, т. е. максимум можно установить соединение с базой данных master и slave max_conns_limit раз
max_conns_limit: 16
# Пользователь и пароль для соединения с этим узлом MySQL, пользователь и пароль master и slave должны быть одинаковыми
user: kingshard
password: kingshard
# Адрес и порт master
master: 127.0.0.1:3306
# Адреса, порты и веса чтения slave, @ после указывает вес чтения этого slave. Можно не настраивать slave
slave: 192.168.0.12@2,192.168.0.13@3
# Если kingshard не может подключиться к MySQL в течение 300 секунд, kingshard отключит этот MySQL
down_after_noalive: 300
-
name: node2
max_conns_limit: 16
user: kingshard
password: kingshard
master: 192.168.59.103:3307
slave:
down_after_noalive: 100
# Правила разделения таблиц
schema:
# Имена узлов, на которые распределяются таблицы
nodes: [node1, node2]
# Все SQL, которые не были разделены, отправляются на узел по умолчанию
default: node1
shard:
-
# Используемая база данных
db: kingshard
# Имя таблицы
table: test_shard_hash
# Ключ таблицы
key: id
# Узел, на который распределяется таблица
nodes: [node1, node2]
# Тип таблицы
type: hash
# Количество дочерних таблиц, указывающее, что node1 имеет 4 дочерние таблицы, а node2 — 4 дочерние таблицы
locations: [4, 4]
-
# Используемая база данных
db: kingshard
# Имя таблицы
table: test_shard_range
# Ключ таблицы
key: id
# Тип таблицы
type: range
# Узел, на который распределяется таблица
nodes: [node1, node2]
# Количество дочерних таблиц, указывающее, что node1 имеет 4 дочерние таблицы, а node2 — 4 дочерние таблицы
locations: [4, 4]
# Означает, что каждая дочерняя таблица содержит не более 10 000 записей, то есть дочерняя таблица 1 соответствует id от 0 до 10 000, дочерняя таблица 2 соответствует id от 10 000 до 20 000 и так далее
table_row_limit: 10000
Примечание:
Kingshard реагирует на сигналы SIGINT, SIGTERM и SIGQUIT, обеспечивая плавное завершение работы. На машине, где развёрнут kingshard, следует избегать генерации этих сигналов, чтобы предотвратить аварийное завершение работы kingshard! Рекомендуется использовать инструмент supervisor для управления фоновым выполнением kingshard.
Kingshard использует формат YAML для анализа конфигурационных файлов, обратите внимание, что в файлах YAML нельзя использовать клавишу табуляции, и после двоеточия должен быть пробел. После завершения написания конфигурационного файла рекомендуется проверить его на сайте yaml lint, чтобы убедиться в отсутствии ошибок форматирования.
Для установки kingshard на Windows обратитесь к документации на сайте https://github.com/flike/kingshard/wiki/На Windows.
Чтобы узнать версию kingshard и время компиляции, используйте команду ./bin/kingshard -v
. Это поможет поддерживать актуальную версию kingshard.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )