на php + vue, сейчас есть задачка, связанная с большим кол-вом мелких put с фронта на бэк. Решил поднять микросервис на nodejs + mongodb (или может редис? нужны быстрые insert). Возможно после этого мы начнем чаще пихать новые фичи в микросервисы.
                  
                  
                  Как полагаю, надо выделить директорию для микросервисов, создать там первый сервис gateway, на который проксировать запросы через nginx. А этот gateway уже будет делегировать микросервисам?
                  
                  
                  Подскажите, кто что знает, как не запутаться, как использовать переменные окружения, нужен ли сейчас сразу rabbitmq и т. д.? Спасибо!
                  
                  
                
Не нужны вам микросервисы. Сделайте в монолите. Вы к ним не готовы. Больше головной боли будет
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Блин, ну очень хочется))
Тогда найдите сениора или архитектора который потянет такой проект. Или сами развивайтесь до такого уровня
Ну это зависит от типа проекта, если проект тяжелый, то лучше разделить его на микро-сервисы, пусть будет даже одна база данных, хотя я бы взял pg вместо mongodb. Но лучше оптимизировать эти put запросы, если они не требуют моментального ответа. Ну а если это какой нить Laravel, то всё круто же. Ты берёшь и делаешь queue job задачу в самом laravel или через redis отправляешь его в работу на nodejs и моментально отдаёшь ответ клиенту, тем самым разгрузив систему.
Проект этот обычный crud?
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Довольно тяжелый, еще и на yii2. Разделять, наверно, пока никто не захочет. В этой задачке много put запросов без ответа, просто json объекты без четкой структуры. Сегодня структура одна, завтра попросят что-то изменить, структура данных будет развиваться постепенно. Поэтому решил выделить в отдельный сервис, и по тестам производительности у mongo очень быстрые инсерты
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Будем развиваться))
делай тогда queue задачу без микро-сервисов, если ответа нету оно тебе очень сильно подходит, монго по конф из highload уступает pg (в который можно поместить ваш json обьект)
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Если про основной проект, то там все уже сложнее, около 250 конечных точек api
А по поводу переписывание проекта, а стоит ли? yii2 хороший фрейм и если работает то не трогай.
Если это crud, то мне кажется сначала стоит с базой поиграться. Потому что микросервисы при работе с одной базой увеличат нагрузку на базу, и никакого прироста в производительности для пользователя не дадут
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Там уже много queue, иногда очередь скапливается на десятки секунд.
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Проект не переписываем, просто отдельный сервис. В связи с чем вопрос по архитектуре, у кого как, кто как делает
 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
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Спасибо, сейчас поищу.
 Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Andrew MOON
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Спасибо, гляну
Обсуждают сегодня