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

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

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

19 ответов

11 просмотров

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

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- Автор вопроса

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Карта сайта