Возможен ли запуск T как сервера приложений без Box

136 views
Skip to first unread message

Alexey Rybalko

unread,
May 17, 2018, 6:32:32 PM5/17/18
to tarantool-ru
Всем привет!

В связи со сменой инфраструктуры в проекте пробую использовать Tarantool (1.7.6-20, Linux 4.9.7) как единую точку для доступа к данным. Изначально был один экземпляр для кэша данных в памяти с доступом через http. Затем решил попробовать в качестве эксперимента отдельный экземпляр как коннектор к унаследованной MySQL с таким же интерфейсом наружу (http.server). Удобно, что всего несколько строк на lua. Пожалуй, нетрадиционное для Tarantool применение, но всё же. Заметил, если не инициализировать Box (... box.cfg{}...), то tarantool не стартует: в итоге и не "живой и не мёртвый". Указанный в сценарии для http.server порт занят, но на все запросы ответ http 404 (причём не из моего обработчика). То есть фактически логика не работает.

# tarantoolctl start mysql-connector
Starting instance mysql-connector...
Forwarding to 'systemctl start tarantool@mysql-connector'
^C
# tarantoolctl status  mysql-connector
Forwarding to 'systemctl status tarantool@mysql-connector'
● tara...@mysql-connector.service - Tarantool Database Server
   Loaded: loaded (/usr/lib/systemd/system/tarantool@.service; enabled; vendor preset: disabled)
   Active: activating (start) since Fri 2018-05-18 01:16:08 MSK; 5min ago
     Docs: man:tarantool(1)
 Main PID: 5875 (tarantool)
   CGroup: /system.slice/system-tarantool.slice/tara...@mysql-connector.service
           └─5875 tarantool /usr/bin/tarantoolctl start mysql-connector

May 18 01:16:08 tma systemd[1]: Starting Tarantool Database Server...
May 18 01:16:08 tma tarantoolctl[5875]: Starting instance mysql-connector...
May 18 01:16:08 tma tarantoolctl[5875]: started
May 18 01:16:08 tma tarantoolctl[5875]: entering the event loop


Буду признателен за ответы на пару вопросов по этой теме.
  1. Целесообразно ли использовать T в подобном сценарии без БД, - как сервер приложений общего назначения?
  2.  Смущает отсутствие каких-либо предупреждений, что без Box модуля нормальный старт невозможен и всё выглядит так, будто экземпляр каким-то образом запустился, однако не откликается. Похоже это не вполне предусмотренная при разработке реакция? Либо нормально запуститься, либо поругать за неверную конфигурацию.

с уважением,
Алексей

Konstantin Osipov

unread,
May 17, 2018, 6:38:57 PM5/17/18
to tarant...@googlegroups.com
* Alexey Rybalko <alexey....@gmail.com> [18/05/18 01:33]:
> 1. Целесообразно ли использовать T в подобном сценарии без БД, - как
> сервер приложений общего назначения?

Думаю тут проблема в недостаточной интеграции tarantoolctl и
чистого app server.

Демонизация в tarantool делается только при вызове box.cfg, а
tarantoolctl на эту демонизацию полагается.

Строго говоря это баг, я бы тикет открыл. Но вытаскивать
демонизацию из box.cfg{} мы в ближайшее время не будем - совсем
вытащить и сделать бокс полностью отделяемым было бы правильно, но
поломает всех существующих клиентов.

Постепенно монолит box.cfg{} распиливается на части, например log
модуль уже полностью независимый, скоро сделаем сетевую подсистему
отделяемой от БД (box.cfg.listen).

До background и tarantoolctl пока руки не дошли.

> 2. Смущает отсутствие каких-либо предупреждений, что без Box модуля
> нормальный старт невозможен и всё выглядит так, будто экземпляр каким-то
> образом запустился, однако не откликается. Похоже это не вполне
> предусмотренная при разработке реакция? Либо нормально запуститься, либо
> поругать за неверную конфигурацию.

Попробуйте без tarantoolctl, всё должно быть ок.


--
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov

Alexey Rybalko

unread,
May 17, 2018, 6:52:15 PM5/17/18
to tarantool-ru
Константин, благодарю за развёрнутый ответ! Запустил так и заработало без Box:
#tarantool mysql-connector.lua &

Если box.cfg{} не приводит к выделению каких-то ресурсов в системе (по крайне мере значимых), то я готов пока смирится :) Ведь tarantoolctl  вполне удобен.

Konstantin Osipov

unread,
May 18, 2018, 1:12:24 AM5/18/18
to tarant...@googlegroups.com
* Alexey Rybalko <alexey....@gmail.com> [18/05/18 01:54]:
VSS увеличивает на размер memtx_memory. По умолчанию 256МБ, можно
снизить до 32-64МБ спокойно. Но это только VSS, в RSS оно
превращается только если хранить данные.

Eugene Prokopiev

unread,
Nov 5, 2018, 1:46:24 AM11/5/18
to tarantool-ru
Константин, есть ли прогресс по этой части в 1.9 или только в 2.х?

Как сейчас настроить log и listen без box?

пятница, 18 мая 2018 г., 1:38:57 UTC+3 пользователь Konstantin Osipov написал:

Alexey Rybalko

unread,
Apr 1, 2019, 1:10:09 PM4/1/19
to tarantool-ru
Доброго времени суток! Константин, подскажите, чего-то изменилось в плане распиливания "монолита" box.cfg{}  ? 


пятница, 18 мая 2018 г., 1:38:57 UTC+3 пользователь Konstantin Osipov написал:
* Alexey Rybalko <alexey...@gmail.com> [18/05/18 01:33]:
> В связи со сменой инфраструктуры в проекте пробую использовать Tarantool
> (1.7.6-20, Linux 4.9.7) как единую точку для доступа к данным. Изначально
> был один экземпляр для кэша данных в памяти с доступом через http. Затем
> решил попробовать в качестве эксперимента отдельный экземпляр как коннектор
> к унаследованной MySQL с таким же интерфейсом наружу (http.server). Удобно,
> что всего несколько строк на lua. Пожалуй, нетрадиционное для Tarantool
> применение, но всё же. Заметил, если не инициализировать Box
> (... box.cfg{}...), то tarantool не стартует: в итоге и не "живой и не
> мёртвый". Указанный в сценарии для http.server порт занят, но на все
> запросы ответ http 404 (причём не из моего обработчика). То есть фактически
> логика не работает.
>
> # tarantoolctl start mysql-connector
> Starting instance mysql-connector...
> Forwarding to 'systemctl start tarantool@mysql-connector'
> ^C
> # tarantoolctl status  mysql-connector
> Forwarding to 'systemctl status tarantool@mysql-connector'
> ● tarantool@mysql-connector.service - Tarantool Database Server
>    Loaded: loaded (/usr/lib/systemd/system/tarantool@.service; enabled;
> vendor preset: disabled)
>    Active: activating (start) since Fri 2018-05-18 01:16:08 MSK; 5min ago
>      Docs: man:tarantool(1)
>  Main PID: 5875 (tarantool)
>    CGroup:
> /system.slice/system-tarantool.slice/tarantool@mysql-connector.service
Reply all
Reply to author
Forward
0 new messages