Обычно доступ к работникам Azure осуществляется через конечные точки, определенные в определении службы. Эти конечные точки, которые должны быть TCP или HTTP (S), передаются через балансировщик нагрузки и затем подключаются к фактическому IP / порту компьютеров Azure.
Мое приложение значительно выиграет от использования UDP, поскольку я подключаюсь с сотовых устройств, где байты подсчитываются для выставления счетов, а издержки SYN / ACK / FIN затмевают 8-байтовые пакеты, которые я отправляю. Я даже подумывал поместить свои данные прямо в заголовки сообщений ICMP. Однако все это не поддерживается балансировщиком нагрузки.
Я знаю, что вы можете включить ping на виртуальных машинах Azure, а затем пинговать их - http://weblogs.thinktecture.com/cweyer/2010/12/enabling-ping-aka-icmp-on-windows-azure-roles.html.
Что-нибудь мешает мне использовать службу на основе TCP (предоставляемую через балансировщик нагрузки), которая просто раздает IP-адрес и порт адреса виртуальной машины Azure, а затем приложение связывается напрямую с этим работником? (Мне придется самому управлять балансировкой нагрузки.) Если рабочий будет остановлен или перемещен, мое приложение будет достаточно умным, чтобы повторно подключиться к конечной точке TCP и запросить новое место для отправки данных.
Работает ли эта концепция или есть что-то, что препятствует такому прямому доступу?