Подтвердить что ты не робот

Являются ли протоколы без гражданства более разумными для использования по протоколам с точки зрения состояния?

Я могу видеть, что протоколы с состоянием приводят к тому, что менее эмулированное состояние, как куки файлы, не сработает.

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Преимущества апатрида:

  • Высокая масштабируемость (вы можете отправить запрос на любой node, вы можете добавлять узлы в любое время)
  • Высокая доступность (если один node не работает, нет состояния, которое потеряно, просто отправьте запрос другому node)
  • Высокая скорость (поскольку нет состояния, результаты могут быть кэшируемыми)

Ответ 3

Я бы назвал его специфичным для домена. Если вы пишете моральный эквивалент ping, правильный вариант - это протокол без учета состояния. С другой стороны, если вы пишете VNC, то, конечно, путь к успеху может быть достигнут.

Что касается того, когда выбрать, какие, есть два момента, которые нужно иметь в виду. Во-первых, в то время как выбор реализации - это/или, проблемное пространство является континуумом. У всех задач в реальном мире есть как минимум небольшое состояние, вопрос в том, насколько и накладные расходы на его преодоление стоит того, чтобы сдержать их с обоих концов. Во-вторых, вы, как правило, имеете дело с стеком протокола, а не с одним протоколом; убедившись, что все, что живет на правильном уровне, может значительно упростить ситуацию.

Ответ 4

Протокол без устаревания проще кластеризовать, поскольку при последующих запросах состояние не должно передаваться с 1 сервера на другой.

Ответ 5

Я лично не знаком со всеми проблемами дизайна stateful против апатридов, но я знаю, что NFSv4 является состоятельным после 15-летней версии предыдущих версий NFS, которые не имеют гражданства, поэтому очевидно, что безгражданство стало значительным ограничением для NFS.

Несколько минут "Googling" показывает несколько статей и блогов, рассказывающих о состоянии NFSv4; это должно быть интересно прочитать для некоторых проблем с дизайном.

Ответ 6

Еще одна приятная вещь с протоколами без учета состояния - это упрощение обработки аварийных ситуаций сервера и/или кластеризации/балансировки нагрузки.

Ответ 7

Готовность лучше. Тогда вам не нужно отправлять государство все время. Затем протокол упрощается.