Kingshard — это проект высокопроизводительного прокси MySQL, написанный на Go. Kingshard обеспечивает базовую функциональность разделения чтения и записи, а также упрощает работу с распределёнными таблицами MySQL. Это позволяет DBA легко и плавно масштабировать MySQL-базы данных через kingshard. Производительность kingshard составляет более 80% производительности прямого соединения с MySQL. Для использования kingshard в продакшене, пожалуйста, скачайте последнюю версию с страницы релизов!!
Поддержка прозрачного пула соединений MySQL, который позволяет использовать существующие соединения вместо создания новых.
Возможность плавного добавления или удаления баз данных без изменения работы приложений.
Поддержка нескольких slave серверов с балансировкой нагрузки по весовым коэффициентам.
Поддержка принудительной выборки данных из основной базы данных.
Поддержка подготовленных запросов (prepared statements) для популярных языков программирования (Java, PHP, Python, C/C++, Go).
Управление максимальным количеством соединений с базой данных.
Ведение логов SQL и медленных запросов.
Чёрный список SQL-запросов.
Белый список IP-адресов клиентов, доступ к которым ограничен только белым списком (включая диапазон IP-адресов).
Настройка набора символов.
Поддержка функции last_insert_id.
Динамическое изменение конфигурации kingshard через перезагрузку файла конфигурации (подробнее см. команды управления).
Управление kingshard через Web API.
Поддержка многопользовательских режимов, где каждому пользователю предоставляется свой набор таблиц с ограничением прав доступа.### 2. Возможности шардинга
Поддержка хеш-распределения и диапазонного распределения целых чисел.
Распределение таблиц по годам, месяцам и дням.
Распределение таблиц между несколькими узлами.
Выполнение агрегирующих функций COUNT, SUM, MAX и MIN между узлами.
Поддержка JOIN операций для одной распределённой таблицы.
Поддержка операций ORDER BY, GROUP BY и LIMIT между узлами.
Отправка SQL-запросов на конкретные узлы.
Выполнение транзакций на одном узле, но не поддерживаются распределённые транзакции между несколькими узлами.
Обновление таблиц на нескольких узлах без использования транзакций (INSERT, DELETE, UPDATE, REPLACE).
3. Описание шардинга в kingshard
4. Описание функции распределения таблиц по времени в kingshard
6. Описание команд администрирования
7. Описание Web API интерфейсов администрирования
8. Описание черного списка SQL в kingshard
9. Часто задаваемые вопросы по kingshard### Архитектура и дизайн kingshard
1. Архитектурный дизайн и реализация функционала kingshard
2. Оптимизация производительности kingshard — сетевой аспект
3. Отчет по тестированию производительности kingshard
https://github.com/flike/kingshard/issues/148
С момента выпуска kingshard как открытого проекта он прошел множество этапов развития, что привело к значительному повышению его функциональности и надежности. На данный момент более чем 50 компаний используют kingshard в качестве прокси MySQL в своих рабочих средах. Если вы столкнулись с ошибками при использовании kingshard или хотите предложить новые функции, пожалуйста, отправьте электронное письмо на flikechen@qq.com или присоединитесь к QQ группе (147926796) для обсуждения.Пожалуйста, следите за официальным каналом новостей Backend Technology News, где будут публиковаться последние новости о kingshard и статьи по теме архитектуры backend.
Проект kingshard использует лицензию Apache 2.0. Для получения информации о лицензии обратитесь к этому разделу
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )