Сейчас меня беспокоит следующее: кажется, что каждому из моих микросервисов нужно много работать. вызовов к другим службам только для запросов, что делает все тесно связанным.
Например, когда пользователь А подключается к приложению, ему необходимо получать все его разговоры (скажем, только один на данный момент один тип), поэтому он отправляет запрос в службу разговоров с идентификатором пользователя, и эта служба извлекает все разговоры пользователей из БД, тогда проблема начинается здесь:
- Каждый объект разговора имеет атрибут списка идентификаторов участников (пользователь A и пользователь B), поэтому, используя идентификатор другого пользователя (получатель, пользователь B), служба разговора вызывает для каждого разговора:
- Пользовательский сервис для имени пользователя
- Служба изображения профиля для изображения пользователя
- Сервис присутствия для статуса онлайн/оффлайн
- Сервис непрочитанных сообщений для количества непрочитанных сообщений в разговоре
Буду очень признателен за ваши отзывы и критику, заранее спасибо!!!
Меня пытались «хранить» данные обычных пользователей в одном сервисе, например User Services теперь хранит изображение профиля (может быть, нет необходимости в сервисе изображений профиля?), а вместо идентификаторов участников в объектах разговора также их имена пользователей, но в конце это все равно требует большого количества вызовов от службы разговора, если пользователю нужно получить сразу много разговоров
Подробнее здесь: https://stackoverflow.com/questions/790 ... -single-se