Приложение веб-чата (Spring Boot + MongoDb? + RabbitMQ?) Бэкэнд-дизайн - PullRequest
0 голосов
/ 25 апреля 2020

Как побочный проект, я думаю о разработке (в основном 1-к-1) приложения чата (не простого, может опубликовать sh). Нужны некоторые предложения / мнения по дизайну реализации бэкэнда.

В1: Не будет ли Sql (MongoDB) правильным выбором для хранения сообщений на стороне сервера? Q2: Использование RabbitMQ. Есть мысли по этому поводу? Q3: Если использовать RabbitMQ (или любой другой Q), как будет работать поток и бэкэнд? т.е. скажем, C1 общается с C2 и C3. C1 <---> C2 и C1 <-----> C3

а. Учитывая все 3 онлайн и общение. Сколько обменов (exch) и Qs будет в этом случае? На какой exch и Q будет отправлено сообщение для обеих пар? Кроме того, главный сервер приложений должен хранить сообщение. Как сервер и получатель получат это сообщение?

b. Предположим, что C1 отключен, а C2 отправляет сообщение C1. В этом случае, как будет работать бэкэнд? Сколько тогда будет exch и Qs?

(Нужна какая-то отправная точка, я знаю, что это долго, вы можете ответить на ее части Q1, Q2, Q3)

...