Увеличивает ли привязка WCF NetTcp связанность?

В настоящее время мы создали веб-API, используя либо SOAP, либо более простой подход, подобный HTTP REST. В то же время есть несколько способов позволить серверу и клиентам более или менее развиваться независимо друг от друга, что я считаю большим преимуществом.

Одним из основных недостатков является то, что при использовании HTTP возникают некоторые накладные расходы. Мы планируем расширить использование API-интерфейсов служб для предоставления данных, а не приложений для прямого доступа к базам данных. Мы обеспокоены тем, что использование HTTP повлечет за собой слишком много накладных расходов и увеличит задержку. Конечно, мы могли бы использовать кэширование, но это также увеличило бы сложность.

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

Мой вопрос заключается в следующем: используя привязку WCP NetTcp, возможно ли развивать ваши API без необходимости обновлять все клиенты? Другими словами: какую степень связи мы можем ожидать между клиентом и сервером при использовании этой привязки?


person Jeroen Kok    schedule 06.12.2012    source источник


Ответы (2)


Мы обеспокоены тем, что использование HTTP повлечет за собой слишком много накладных расходов и увеличит задержку. Одно из предложений состоит в том, чтобы использовать привязку WCF NetTcp, которая должна быть намного более производительной.

Кто так говорит? Попросите их показать вам эталонные тесты, поскольку я не вижу, как TCP мог бы значительно улучшить производительность. Конечно, он использует двоичный протокол, но узким местом, вероятно, является бизнес-логика сервера, а не фактическая передача.

HTTP намного лучше, так как уже есть много готовой к использованию инфраструктуры, которая поможет вам масштабироваться позже, если потребуется (например, балансировка нагрузки, кеш-прокси и т. д.).

person jgauffin    schedule 12.03.2013

Я считаю, что привязка, которую вы хотите использовать, зависит от того, кто является потребителями услуги. Если у вас уже есть клиенты, использующие HTTP-клиент REST или SOAP с определенной привязкой, при переключении на Net TCP все равно потребуется обновление службы для всех клиентов, уже использующих службу. Поскольку HTTP уже имеет много доступной инфраструктуры, я не вижу особой ценности в переключении привязок.

person ancoder    schedule 31.05.2013