Рубрика:
Базы данных /
Веб-технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСАНДР КАЛЕНДАРЕВ, OTG, руководитель группы (ТимЛид), akalend@mail.ru
Взаимодействие Tarantool и MySQL
В проектах с повышенной нагрузкой иногда приходится прибегать к весьма нетривиальным решениям. Одним из таких решений является построение веб-приложений с использованием современного NoSQL-хранилища – Tarantool
Коротко о главном
Ранее [1, 2] мы писали о NoSQL-хранилище данных Tarantool [3] – это открытая разработка российских программистов холдинга Mail.Ru. Кратко напомню об основных характеристиках:
- это быстрое хранилище данных, которое размещается только в оперативной памяти, класса Redis, Memcached и Aerospike;
- в настоящее время есть экспериментальная разработки нового типа хранилища, в котором данных может быть больше, чем существующий объем оперативной памяти;
- это хранилище, которое данные хранит кортежами, можно рассматривать как аналог строки в SQL-таблице;
- данные из оперативной памяти постоянно синхронизируются с диском, по аналогии с Redis или Aerospike;
- кортежи объединяют в пространства (space), можно проводить аналогию с SQL-таблицей;
- на каждое пространство (space) может быть наложен первичный и вторичные индексы, что его отличает от Redis и Memcached. Там возможно использовать только первичный индекс. В Aerospike также возможно использовать вторичные индексы;
- в Tarantool есть развитый встроенный механизм выполнения Lua-кода, что позволяет его использовать как сервер приложений. С Redis – это сделать практически невозможно;
- имеется API для написания встроенных функций на языке Си;
- развитое внутреннее API позволяет писать плагины (модули) и создавать библиотеки, например сообществом реализованы плагины сервера очередей, шардирования, связи с БД mysql и pgsql, geo-модуль и много-много других.
В каких задачах лучше использовать Tarantool? Это хранение оперативной информации, например активных профилей пользователей, сессий, хранение справочников, токенов, ссылок на баннеры и адреса перехода.
Например, вы имеете популярную онлайн-игру, и очень удобно в оперативной памяти держать профили только активных (играющих) игроков. Для их синхронизации можно использовать разные методы. Давайте рассмотрим некоторые изних.
Статью целиком читайте в журнале «Системный администратор», №5 за 2017 г. на страницах 65-69.
PDF-версию данного номера можно приобрести в нашем магазине.
- Календарев А. Прозрачная защита микросервисов. Как защитить API и создать функциональность для REST API. // «Системный администратор», № 11, 2016 г. – С. 50-55 (http://samag.ru/archive/article/3317).
- Календарев А. Новое в Tarantool. // «Системный администратор», № 1-2, 2015 г. – С. 67-71 (http://samag.ru/archive/article/2868).
- Официальный сайт проекта – http://tarantool.org.
- nginx-модуль – https://github.com/tarantool/nginx_upstream_module.
- Строим микросервисы на базе nginx и Tarantool – https://habrahabr.ru/company/mailru/blog/272141.
- Openresty: превращаем NGINX в полноценный сервер приложений – https://habrahabr.ru/post/321864.
- Репликация из MySQL в Tarantool – https://habrahabr.ru/company/mailru/blog/323870.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|