LINUX.ORG.RU

есть два tcp сокета

 


0

2

нужно понимать на каком из них возникли события и или читать/писать или закрывать все. это такое спец прокси.

вопрос: как это реализовать на golang? как тут проще и стандартней всего заюзать select/poll/epoll?

★★

Ответ на: комментарий от stave

Ну и вдогонку. Есть только одно требование, которое может потребовать несколько серверов - отказоустойчивость.

Правда в вебе есть еще такая штука как терминация ssl, современные цпу достаточно дохлые для этого. Но это решается карточкой-ускорителем.

stave ★★★★★
()
Ответ на: комментарий от stave

Ну давай, расскажи, как ты собираешься, например, стримить весь ютьюб с одного сервера.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Экая мелочь-то, да?

Да, ее можно решить проще, чем через синхронизацию кешей с некой долей погрешности.

stave ★★★★★
()
Ответ на: комментарий от WitcherGeralt

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

ejabberd Massive Scalability: 1 Node — 2+ Million Concurrent Users

… By default, Linux servers are not configured to allow you to handle, nor even generate, 2 million TCP sockets. It required quite a bit of network setup not to have problems with exhausted ports on the Tsung side. …

gag ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Так назови.

Любой фронт в сетях/вебе обслуживает дохулион конкурентных соединений в секунду, тебе уже привели примеры dns, load balancer. Также это частый кейз для всяческих систем обработки/пересылки сообщений будь то мессенджеры или прочие брокеры или очереди. Ты можешь не видеть все это барахло, потому что тебя надрессировали решать проблему только вширь («скейлить»).

Впрочем по твоим познаниям, продемонстрированным в этом треде, и скейлить ты будешь по два сокета на го-процесс, ебаная недоучка. Спасибо пятизвездочному регистранту за макание мрази в говно. Показательно, что при немного нестандартной задаче, ты тут же обосрался. Ну хэндлить только входящие соединения-то ты хотя бы натренировалась?

anonymous
()
Ответ на: комментарий от gag

В принципе уже было, только в качестве пуш-сервера (гугл так юзает или раньше юзал, если не ошибаюсь).

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Каким местом, днс, балансер, мессенджер или брокер стали проксями, отвечай, мразь! Опять побежишь своим обосраные сообщения удалять?

anonymous
()
Ответ на: комментарий от Harald

И сколько сотен тыщ сокетов может обрабатывать этот ваш го с таким подходом?

ты это даже на ассемблере не сможешь обрабатывать, если все «сотни тыщ» сокетов будут вести обмен данными хотя бы по 1 байту в секунду. Весь тайминг будет уходить на контекст свичинг. А спящих «сотню тыщ» обслужить не проблема. Там только нужно смотреть в сколько потребляет памяти обслуживание одного сокета на языке, которым ты реализуешь такое.

если уж сильно любопытно, вот небольшая статья https://www.freecodecamp.org/news/million-websockets-and-go-cc58418460bb/

для тру: пытались обслужить 3 миллиона соединений. Начали с 72Gb потребления, улучшились потом до 24.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.