Работа веб-сервисов WCF с NLB-сервером

Я начинаю архитектуру нового проекта с использованием WCF, но я не тот человек, который должен делать какие-то соображения по поводу сети, поэтому я провожу некоторые исследования, но не могу найти ответы на эти вопросы:

  1. Мы разместим службу WCF в обычном приложении Windows Service на 2 серверах, и у нас будет другой сервер для выполнения задачи балансировки нагрузки с использованием WNLB. Тот факт, что мы размещаем WCF в приложении Windows Service, может нарушить работу NLB?

  2. До моего исследования я думал, что балансировку нагрузки нужно настроить, но с NLB это кажется очень простым, неужели это так просто?

Примечание: привязка будет BasicHttpBinding

1 ответ

Я не могу говорить с NLB специально о балансировке нагрузки служб WCF, но в прошлом я поддерживал и создавал множество веб-служб WCF с балансировкой нагрузки. В целом, я бы не рекомендовал использовать NLB вне среды разработки, поскольку NLB плохо масштабируется. Однако, если у вас нет доступа к аппаратному балансировщику нагрузки или желание войти в Linux (HAProxy/Varnish/Nginx), он может работать.

Так:

  1. Нет, у NLB не должно быть проблем с балансировкой нагрузки веб-службы WCF.
  2. NLB проще в настройке, поскольку обладает меньшими возможностями, чем более надежное решение для балансировки нагрузки. Что есть, то есть. Есть много вариантов, которые вы все еще можете использовать, включая переписывание, но NLB - не очень полнофункциональное решение для балансировки нагрузки.

Единственное предостережение, которое я имею к любому из этого, больше связано с балансировкой нагрузки WCF, чем с NLB. Если вы планируете использовать SSL со своей службой WCF и переходите на балансировщик нагрузки, который поддерживает разгрузку SSL, у вас могут возникнуть проблемы с WSDL, недоступным через VIP (IP-адрес виртуального сервера). Есть обходные пути, но так как вы еще не пришли, я просто хотел, чтобы вы знали об этом, а не пугали вас.

РЕДАКТИРОВАТЬ: я собирался подробно рассказать о том, как обращаться с метаданными в сценарии разгрузки SSL, но недавний пост в блоге MSDN обрабатывает это гораздо более элегантно:

http://blogs.msdn.com/b/dsnotes/archive/2014/10/03/ssl-offloading-in-load-balancer-scenario.aspx

Суть в том, что есть две опции: изменить customBinding, чтобы разрешить enableUnsecuredResponse или полностью изменить WSDL, чтобы сделать его доступным через HTTPS на сервере. Вариант 2 - более эффективный способ справиться с этим, поскольку он обеспечит лучшую совместимость с технологиями, отличными от.NET.

Другие вопросы по тегам