Назад | Перейти на главную страницу

Преимущество кластера Microsoft над балансировщиком сетевой нагрузки Microsoft

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

Однако я нашел это комментарий на вопрос о неисправности сервера, который утверждает иначе. Согласно комментарию

NLB просто направляет соединения на открытый порт TCP. Если ваше приложение закрывает порт, NLB больше не будет направлять соединения к нему, пока порт снова не откроется.

  1. Верно ли сказанное выше? Мониторинг ли NLB приложений на уровне портов?
  2. Если ответ на (1) - «да», то переключится ли он как на отключение службы, так и на случай зависания службы или только для одного из этих случаев?
  3. Если NLB действительно выполняет все вышеперечисленное, тогда в чем вообще смысл использования кластеризации? Единственное преимущество в том, что для кластеризации вам не нужны реплицированные данные. Но общая кластеризация была бы более дорогим решением.
  4. Будут ли ответы на приведенные выше вопросы отличаться для стандартного продукта, такого как MS SQL Server, и для моей собственной службы, или это то же самое?
  5. Если NLB не выполняет вышеуказанное и просто выполняет тактовые импульсы на уровне ОС / машины, то есть ли другой способ, кроме кластеризации, для обеспечения высокой доступности и переключения для моей собственной службы?

NLB работает не так. Правило порта NLB определяет, какой порт / порты сбалансированы по нагрузке среди узлов NLB. Трафик, не «привязанный» к правилу порта NLB, не балансируется по нагрузке между узлами NLB. NLB не отслеживать порт / порты, связанные с правилом порта, и отключать трафик кластера NLB к этому хосту при закрытии этого / тех портов / портов или сбоя приложения, предоставляющего услуги на этом / этих портах / портах на определенном хосте. NLB использует «контрольный сигнал» уровня 2 для определения доступности хоста в кластере. Если на одном узле не работает механизм проверки пульса, то все остальные узлы «сойдутся» (или повторно сойдутся), удалив не отвечающий узел из кластера, так что трафик кластера (на основе правила порта) не будет направлен на не отвечающий. отвечающий хозяин. NLB - это строго механизм балансировки нагрузки уровня 3 (сетевой уровень). Это не механизм балансировки нагрузки уровня 7 (прикладного уровня).

Совершенно нормально иметь зависшее приложение на узле NLB (таком как HTTP или RDP), определенном в правиле порта NLB, по-прежнему получать трафик NLB, даже если приложение не способно принимать этот трафик. Это потому, что NLB не знает ничего выше уровня 3.