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

OSCHINA-MIRROR/blackeybaord-kingshard

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
kingshard_install_document.md 7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 18:42 b4fbb46

Установка kingshard

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

Примечание:

  1. Kingshard реагирует на сигналы SIGINT, SIGTERM и SIGQUIT, обеспечивая плавное завершение работы. На машине, где развёрнут kingshard, следует избегать генерации этих сигналов, чтобы предотвратить аварийное завершение работы kingshard! Рекомендуется использовать инструмент supervisor для управления фоновым выполнением kingshard.

  2. Kingshard использует формат YAML для анализа конфигурационных файлов, обратите внимание, что в файлах YAML нельзя использовать клавишу табуляции, и после двоеточия должен быть пробел. После завершения написания конфигурационного файла рекомендуется проверить его на сайте yaml lint, чтобы убедиться в отсутствии ошибок форматирования.

  3. Для установки kingshard на Windows обратитесь к документации на сайте https://github.com/flike/kingshard/wiki/На Windows.

  4. Чтобы узнать версию kingshard и время компиляции, используйте команду ./bin/kingshard -v. Это поможет поддерживать актуальную версию kingshard.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/blackeybaord-kingshard.git
git@api.gitlife.ru:oschina-mirror/blackeybaord-kingshard.git
oschina-mirror
blackeybaord-kingshard
blackeybaord-kingshard
master