Рубрика «клиент-серверная архитектура»

Миллион одновременных соединений - 1

Я слышал ошибочные утверждения о том, что сервер может принять только 65 тысяч соединений или что сервер всегда использует по одному порту на каждое принятое подключение. Вот как они примерно выглядят:

Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.

Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.

Если есть ограничение на количество портов, которые может иметь одна машина, а сокет можно привязать только к неиспользуемому номеру порта, как с этим справляются серверы, имеющие чрезвычайно большое количество запросов (больше, чем максимальное количество портов)? Эта проблема решается распределением системы, то есть кучей серверов на множестве машин?

Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:

  1. Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
  2. Теоретические возможности на основе протокола TCP/IP.
  3. Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.

Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Читать полностью »

Идея тонкого клиента по-настоящему воплотилась в середине 30-ых годов. Хотя сам термин обсуждался и за пол-века до этого. Клиент-серверные приложения, преобладавшие долгое время перед этим, являлись, по-сути, тупиковой ветвью эволюции: идея тонкого клиента в виде веб-браузера мутировала до абсурда: клиентская часть приложения — та что выполнялась на машине пользователя — требовала ресурсов больше чем серверная, при том, что последняя могла обслуживать множество пользователей. Браузер стремился задействовать все доступные ресурсы пользовательской машины, становясь наиболее толстым клиентом за всю история информационных систем.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js