215 похожих чатов

Всем Привет ,возникли вопросы по работе с cartridge. Вводная: У меня

есть следующая топология реализованная тарантулами и мне нужно перейти на катридж:
1) Роутер
2) Репликасеты с функциональностью A отмасштабированные
3) Репликасет с функциональностью B

Вопросы:
1) как мне строить взаимодействие с репликасетами группы A через роутер, я правильно понимаю что это делается как то так :
local router_role = cartridge.service_get('vshard-router')
local default_router = router_role.get()
Или все таки можно написать обращение к роли с вычисленным bucket_id , что то на подобие cartridge.rpc_call ?

Оформление роли всегда предполагает помещение функции роли в таблицу return или я просто расшарю свою таблицу , которая будет доступна на прямую при вызовах vshard.router.call ?
Интересует скажем так best practice

2) Обращение к не шардированной функциональности B из любой ноды кластера делать через cartridge.rpc_call ?
3) При добавление новых нод в кластер (ноды запускаем на разных физически машинах), кодовую базу ролей нужно отдельно от катриджа разливать ?
4) Если ноды кластера находятся физически на разных машинах , то перед стартом катриджа эти ноды нужно предварительно поднять , т.е по верх катриджа нужен еще например ansible ?
5) Как разливать настройки ролей по кластеру аналогично веб морде или нужно использовать config_patch_clusterwide ?

3 ответов

7 просмотров

привет! > через роутер, я правильно понимаю что это делается как то так да, правильно > Оформление роли всегда предполагает помещение функции роли в таблицу return или я просто расшарю свою таблицу , которая будет доступна на прямую при вызовах можно и так и так, в саму роль функцию добавлять необходимо только для rpc_call >Обращение к не шардированной функциональности B из любой ноды кластера делать через cartridge.rpc_call да > При добавление новых нод в кластер (ноды запускаем на разных физически машинах), кодовую базу ролей нужно отдельно от катриджа разливать ? нет, они разливаются единым пакетом, со все и собранными зависимостями > Если ноды кластера находятся физически на разных машинах , то перед стартом катриджа эти ноды нужно предварительно поднять , т.е по верх катриджа нужен еще например ansible ? да > Как разливать настройки ролей по кластеру аналогично веб морде или нужно использовать config_patch_clusterwide ? Да, аналогично веб-морде. но бывает и через patch_clustterwide - если для смены конфига пишется какой-то кастомный апи (пример можно посомтреть в sharded-queue например)

Тимур- Автор вопроса

>нет, они разливаются единым пакетом, со все и собранными зависимостями если мне нужно обновить кодовую базу , допустим одну роль ? >Да, аналогично веб-морде. но бывает и через patch_clustterwide - если для смены конфига пишется какой-то кастомный апи (пример можно посомтреть в sharded-queue например) чем заменить веб морду при разливке конфига , есть ли пример ?

> если мне нужно обновить кодовую базу , допустим одну роль ? да, все равно. есть альтернатива - куски кода можно грузить через конфиг (он может включать луа-файлы). тогда их можно будет обновлять через обновление конфига - но обработку такого кода надо будет описать в роли. а, и плюс теперь еще хотрелоад кода ролей есть - т е можно разлить обнову кода ролей и применить ее без рестартов > чем заменить веб морду при разливке конфига , есть ли пример ? есть просто хттп-ендпоинт /admin/config например. веб-морда его и использует, можно прямо в ней и подсмотреть (в консоли браузера). ансибл кажется использует луа-апи, но тут навскидку не помню, надо по сорцам смотреть

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта