У меня есть служба WCF, размещенная в режиме балансировки нагрузки. Служба размещается с использованием IIS. Есть два сервера, которые сбалансированы по нагрузке.Как клиент может использовать функцию WCF с балансировкой нагрузки
Ниже перечислены end points
на сервере. https://labA.myCompany.com:44330/MyService/InternalService.svc https://labB.myCompany.com:44330/MyService/InternalService.svc
Я держу базовый адрес host base address
, как
baseAddress=" https://test-LoadBalanced.myCompany.com/MyService".
Этот хост от нагрузки сбалансированного адреса.
Когда я набираю https://test-LoadBalanced.myCompany.com/MyService/InternalService.svc, я могу получить служебную страницу. Внутри этого иногда я получаю ссылку wsdl для адреса конечной точки окна ServerA и некоторого адреса конечной точки сервера B.
Ссылка
Ответ на вопрос WCF Service Endpoints vs Host Base address говорит
При размещении службы WCF на IIS, базовый адрес может быть только URL в SVC-файл.
Ниже от WCF Addressing In Depth
Клиенты не имеют понимания базового адреса службы и нет необходимости поддерживать что-то похожее на их стороне провода. В результате вы не найдете ничего, что связано с базовыми адресами в клиентской стороне объекта или в разделе конфигурации. Клиенты просто выбирают конкретную конечную точку, которая всегда поставляется с абсолютным адресом, а абсолютный адрес определяет адрес, который он будет использовать во время передачи.
По умолчанию BasicHttpBinding посылает заголовок HTTP соединения в сообщениях с Keep-Alive значение, которое позволяет клиентам устанавливать постоянные подключения к службам, которые поддерживают их. Эта конфигурация обеспечивает повышенную пропускную способность, поскольку ранее установленные соединения можно повторно использовать для отправки последующих сообщений на один и тот же сервер. Однако повторное использование соединений может привести к тому, что клиенты будут сильно привязаны к определенному серверу в балансированной нагрузкой ферме, что снижает эффективность балансировки нагрузки с круговым движением. Если это поведение нежелательно, HTTP Keep-Alive можно отключить на сервере, используя свойство KeepAliveEnabled с помощью CustomBinding или пользовательского привязки.
Клиент
Я создал клиент, используя нагрузки сбалансированный адрес. Однако в конфигурации клиента адрес конечной точки имеет адрес сервера A; а не сбалансированный адрес нагрузки.
Вопрос
Итак, как клиент может использовать балансировки нагрузки преимущество в производительности? Он будет атаковать сервер A всегда для получения обслуживания, не так ли?