Как правильно организовать проксирование вебсокетов со сторонних сервисов?
Есть необходимость получать сигналы от нескольких бирж и рассылать уведомления пользователям по их сигналам.
На сайте также необходимо показывать эти данные.
Я хочу сделать такую систему:
1. Сервис проксирования вебсокета, который будет подключаться ко всем нужным вебсокетам и через rabbitmq рассылать сообщения в соответствующие каналы
2. Консюмеры, которые, соответственно, будут подписываться на эти каналы и делать то, что нужно. В том числе и отправлять эти сигналы на сайт. Т.е. сервис рассылки уведомлений, сервис обновления данных в базе, сервис трансляции этих сигналов подписчикам вебсокета на сайте, и.т.д.
Все ли ок в этой схеме и какие у нее слабые места?
Ваша схема вполне жизнеспособна. Консьюмеры очереди rabbitmq могут потреблять одну и туже очередь, в несколько потоков, т. е. Система масштабируется горизонтально. Основной вопрос будет с шардированием и клиентских сокетов, что бы направить эвенты от ваших консьюмеров до ваших клиентов. В зависимости от ожидаемой нагрузки стоит ввести ещё один транспортный слой в вашу схему - транспорт до клиента