Когда я создаю интересные вещи, у меня возникла проблема. Мне нужно подключить несколько хостов (не так много, например 10) в кольце топологии, используя сокет, конечно.Есть ли хороший способ создания кольцевой топологии с использованием сокета?
Трудная вещь здесь, я думаю, это роли в соединении сокетов, то есть сервер & клиент. Условие, в котором я касаюсь, требует связи симметричным способом подключения друг к другу (каждый хост эквивалентен). Однако сокет может предоставлять только асимметричный способ, в котором должен быть сервер и клиент.
На самом деле я придумал решение: для каждого хоста сокет, подключенный к его левому соседу, действует как сервер, а сокет, подключенный справа, действует как клиент. Это работает и масштабируемо. Но все равно это не так просто.
Может ли кто-нибудь придумать лучшие решения или просто скажет, что это один из лучших? :) Спасибо за ваше блестящее понимание.
UDP является бесконтактным и, следовательно, может использоваться для более симметричной топологии, чем TCP. – bluedog
Не имеет значения, используете ли вы UDP или TCP. Вам все равно нужно что-то ждать, когда вы будете вводить данные (сервер) и что-то отправить данные (клиент). – BetaRide
Я думаю, что ваш вопрос в общем. Каково использование и, что еще важнее, какие требования вы должны установить для соединений между серверами. Вам нужно какое-то открытие? Вам нужно какое-то самоисцеление, если серверы? Или вы в порядке с жестко запрограммированным списком серверов, распределенных вручную на ваши серверы? – BetaRide