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

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

на php + vue, сейчас есть задачка, связанная с большим кол-вом мелких put с фронта на бэк. Решил поднять микросервис на nodejs + mongodb (или может редис? нужны быстрые insert). Возможно после этого мы начнем чаще пихать новые фичи в микросервисы.
Как полагаю, надо выделить директорию для микросервисов, создать там первый сервис gateway, на который проксировать запросы через nginx. А этот gateway уже будет делегировать микросервисам?
Подскажите, кто что знает, как не запутаться, как использовать переменные окружения, нужен ли сейчас сразу rabbitmq и т. д.? Спасибо!

19 ответов

25 просмотров

Не нужны вам микросервисы. Сделайте в монолите. Вы к ним не готовы. Больше головной боли будет

Andrew MOON- Автор вопроса

Блин, ну очень хочется))

Тогда найдите сениора или архитектора который потянет такой проект. Или сами развивайтесь до такого уровня

Ну это зависит от типа проекта, если проект тяжелый, то лучше разделить его на микро-сервисы, пусть будет даже одна база данных, хотя я бы взял pg вместо mongodb. Но лучше оптимизировать эти put запросы, если они не требуют моментального ответа. Ну а если это какой нить Laravel, то всё круто же. Ты берёшь и делаешь queue job задачу в самом laravel или через redis отправляешь его в работу на nodejs и моментально отдаёшь ответ клиенту, тем самым разгрузив систему.

Проект этот обычный crud?

Andrew MOON- Автор вопроса

Довольно тяжелый, еще и на yii2. Разделять, наверно, пока никто не захочет. В этой задачке много put запросов без ответа, просто json объекты без четкой структуры. Сегодня структура одна, завтра попросят что-то изменить, структура данных будет развиваться постепенно. Поэтому решил выделить в отдельный сервис, и по тестам производительности у mongo очень быстрые инсерты

Andrew MOON- Автор вопроса

Будем развиваться))

делай тогда queue задачу без микро-сервисов, если ответа нету оно тебе очень сильно подходит, монго по конф из highload уступает pg (в который можно поместить ваш json обьект)

Andrew MOON- Автор вопроса

Если про основной проект, то там все уже сложнее, около 250 конечных точек api

А по поводу переписывание проекта, а стоит ли? yii2 хороший фрейм и если работает то не трогай.

Если это crud, то мне кажется сначала стоит с базой поиграться. Потому что микросервисы при работе с одной базой увеличат нагрузку на базу, и никакого прироста в производительности для пользователя не дадут

Andrew MOON- Автор вопроса

Там уже много queue, иногда очередь скапливается на десятки секунд.

Andrew MOON- Автор вопроса

Проект не переписываем, просто отдельный сервис. В связи с чем вопрос по архитектуре, у кого как, кто как делает

Andrew MOON- Автор вопроса

База у микросервиса будет отдельная

не думаю что nodejs поможет в этом вопросе. (зависит очень сильно от реализации и размещения) - Если вы работаете с такими данными разных структур и хотите ноду Вам нужна serverless и aws lambda

Окей. Тогда могу посоветовать посмотреть паттерны saga и 2pc, возможно помогут разобраться с проблемой общения микросервисов

https://www.youtube.com/watch?v=FOCDEk-OLTI&ab_channel=HolyJS Может поможет с выбором

Andrew MOON- Автор вопроса

Спасибо, сейчас поищу.

Andrew MOON- Автор вопроса

Спасибо, гляну

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта