Настройка highload
Performance Configuration
При построении систем массового обслуживания необходимо уделять внимание настройкам систем и сервером для работы под высокой нагрузкой
Настройка OS для большого количества соединений
Увеличение лимита доступных файловых дескрипторов
Увеличение количества доступных портов. Ephemeral ports
Настройка conntrack table (linux)
Настройка sysctl (сетевой стек linux)
Выбор брокера сообщений для массового обслуживания
RabbitMQ максимум 100K клиентов
Redis (эффективнее RabbitMQ) больше подключений, меньше затраты памяти. Sentinel для high availability. Однопоточный, но есть многопоточные сборки
Aerospike
Nats, Nats Streaming (reliable pub/sub)
Tarantool
Apache Pulsar
Эффективное переподключение после падения сервера. Обеспечьте механизм восстановления подключений при массовом обслуживании. Помните, что одновременное подключение всех клиентов может вывести сервера из строя, его нужно планировать в момент разработки архитектуры.
Используйте экспоненциальный реконнект. Клиенты подключаются через экспоненциальные промежутки времени при невозможности установить связь.
Используете Rate limiter на сервере
Используете Smart batching - группируйте подобные запросы и выполняйте их за один раз, чтобы снять нагрузку массовой системы.
Настройте кеш сообщений
Last updated
Was this helpful?