Что лучше: использование нескольких каналов или наличие нескольких условий в одном канале? - PullRequest
0 голосов
/ 04 июля 2018

Я использую Rails ActionCable.

В основном я могу выбирать между двумя вариантами. Одним из них является использование нескольких каналов для различных функций. Другой вариант - использовать один и тот же канал с несколькими условиями для создания одинаковых функций.

Какой из них лучше при увеличении? Каковы недостатки использования слишком большого количества веб-сокетов (Actioncable) при создании приложений?

Может ли кто-нибудь отослать мне хорошую статью, которая объясняет веб-сокеты, повторное кэширование и его влияние, когда приложение расширяется.

Благодарю вас, ребята, за предвкушение положительного ответа.

1 Ответ

0 голосов
/ 01 сентября 2018

Хотя я думаю, что вопрос является дубликатом " Несколько каналов веб-сокетов, один объект ws? ", я добавлю несколько конкретных соображений ActionCable, чтобы пояснить это.

Какой из них лучше при увеличении?

Одно соединение WebSocket (обычно) лучше при увеличении масштаба.

Серверы имеют ограничение на число подключений, которые они могут обрабатывать, а это означает, что добавление подключений WebSocket для каждого клиента потребляет ограниченный ресурс сервера.

Например, если каждому клиенту требуется 2 соединения WebSocket вместо 1, емкость сервера уменьшается вдвое (падает со 100% до 50%).

Каковы недостатки использования слишком большого количества веб-сокетов (Actioncable) при создании приложений?

На некоторых машинах работают старые браузеры, которые не поддерживают WebSockets. Кроме того, приложения и клиенты WebSocket зачастую сложнее кодировать, что приводит к увеличению затрат на обслуживание.

Сказав это, WebSockets - прекрасное решение проблем, которые мучают веб-приложения целую вечность и превосходят методы опроса.

В целом, я бы сказал, что недостатки следует игнорировать, поскольку преимущества намного превышают затраты.

Однако

Сказав это, обратите внимание, что в настоящее время реализация Actioncable довольно медленная.

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

Сравнение ActionCable с AnyCable или на стороне сервера Решение Iodine WebSocket + Pub / Sub немедленно выделит тот факт, что ActionCable следует заменить другими решениями до тех пор, пока он не будет исправлен ,

Дополнительная литература :

Я только начал читать эту статью о Ruby WebSockets, Push и Pub / Sub , которая кажется очень хорошо написанной.

Я также написал статью об основных проблемах, связанных с реализациями Ruby для WebSockets, и о том, как решение WebSocket на стороне сервера может решить эти проблемы. Вы можете прочитать здесь .

...