архитектура on-line консультанта

33 views
Skip to first unread message

Иван Земцов

unread,
Aug 12, 2015, 4:26:27 AM8/12/15
to google groups
Привет всем.

Делаем что-то подобие on-line консультанта, наверное все встречались с ним и даже общались и наверно подключали к своим сайтам.

Опишу архитектуру какую я представляю, потом хотелось бы получить критику и конструктивные советы.

Клиенты заходят и начинают писать сообщения(канал связи Web Socket, хранилище Redis). Инициализируется новая сессия, сессия сохраняется в редисе для постоянного хранения посредством AOF. 
При повторном заходе из куков клиента берется идентификатор сессии и выводится в чат вся история переписки из редиса. Клиенты посредством WS общаются с администратором. Все сообщения скидываются в Редис, откуда должны попадать в БД.

Как лучше скидывать сообщения в БД, они там нужны, чтобы оставалась полная история переписок(может из торнадо сразу писать в БД ?). Недельную переписку можно хранить в редисе и ставить время жизни сообщений неделя в редисе, чтобы дальше они чистились.

Да на схеме только один администратор(менеджер), но их может быть и несколько.

Не нашел возможности у Редиса читать все сообщения из канала, т.е. подписавшись на канал могу получать сообщения, но ранее сообщения не нашел как получать.









--
С уважением, Иван
algoritm (1).png

Алексей С.

unread,
Aug 12, 2015, 2:40:31 PM8/12/15
to django-...@googlegroups.com
что мешает сразу напрямую писать в БД?

12 августа 2015 г., 11:26 пользователь Иван Земцов <inz...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Django russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес django-russia...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Алексей С.

unread,
Aug 12, 2015, 2:43:21 PM8/12/15
to django-...@googlegroups.com
Да и джанго можно выпилить, зачем такой зоопарк?

12 августа 2015 г., 21:40 пользователь Алексей С. <phli...@gmail.com> написал:

マギクアルセニ

unread,
Aug 12, 2015, 5:19:30 PM8/12/15
to django-...@googlegroups.com
Кстати, обратите внимание, в Redis есть pub/sub, его очень полезно использовать для чатов.

Вот моя статья об этом.

http://habrahabr.ru/post/160123/

Иван Земцов

unread,
Aug 13, 2015, 1:24:34 AM8/13/15
to google groups
Сразу писать можно, но объясню почему не хочется.
Используя модели, меньше вероятность сломать код, например если модель изменяется, соответственно меняются и таблицы БД, если написать код сразу вставки в таблицы минуя модели, то такой код более будет подвержен ошибкам. Ничего страшного если таблиц будет не много, но если проект большой, то лучше делать через модели. Но может это будет сильно тормозное решение?

Одна из первых статей, которую прочел по данной теме, спасибо за нее :)
С уважением, Иван

Иван Земцов

unread,
Aug 13, 2015, 1:27:02 AM8/13/15
to google groups
есть ли данное решение на гитхабе ?

2015-08-13 0:19 GMT+03:00 マギクアルセニ <aruseni...@gmail.com>:



--
С уважением, Иван

Иван Земцов

unread,
Aug 13, 2015, 1:28:54 AM8/13/15
to google groups
Вижу ссылка есть из статьи
--
С уважением, Иван

Алексей С.

unread,
Aug 13, 2015, 5:50:53 AM8/13/15
to django-...@googlegroups.com
"но если проект большой, то лучше делать через модели."

но у вас чатик, на 1-2 таблицы
что там ломать не понятно, не думаю что вы потом расширите функционал до размером космической системы.
просто чатик, сообщение ушло - сообщение пришло.

13 августа 2015 г., 8:24 пользователь Иван Земцов <inz...@gmail.com> написал:

Иван Земцов

unread,
Aug 13, 2015, 6:26:02 AM8/13/15
to google groups
пока да, а далее хз
Reply all
Reply to author
Forward
0 new messages