Azure Relay - повторное использование гибридного подключения

Создание нового объекта HybridConnectionStream, как показано ниже, для каждого потока клиентского запроса требуется время (~ 3 секунды)

var client = new HybridConnectionClient(new Uri(String.Format("sb://{0}/{1}", relayConfiguration.Value.RelayNamespace, relayConfiguration.Value.ConnectionName)), tokenProvider);

-- (takes ~3 secs) 
HybridConnectionStream relayConnection= await client.CreateConnectionAsync(); 

Есть ли выход для повторного использования / кеширования уже установленного HybridConnectionStream для обслуживания всех будущих запросов одного и того же клиента или возможно создание пула HybridConnectionStream для более быстрого обслуживания будущих клиентских запросов.
Наша реализация выглядит следующим образом:
Некоторые действия пользователя в мобильном приложении требуются данные из локальной БД, поэтому действие пользователя попадает в api размещенной службы Azure, который, в свою очередь, перенаправляет запрос на конкретное гибридное соединение с ретрансляцией Azure, а затем наша настраиваемая локальная служба прослушивателя выбирает запрос и пересылает его локально веб-сервис для сбора данных
Здесь приложение Service Fabric создает НОВУЮ поток гибридного соединения / гибридного соединения для установления соединения с гибридным соединением с Azure Relay для каждого и каждого входящего запроса пользователя, что требует много времени, и мы хотим избежать создание нового гибридного соединения каждый раз вместо поиска вариантов кэширования и повторного использования уже созданного дорогостоящего гибридного соединения или попытки создания пула гибридных соединений типа этого нг.
пожалуйста, посоветуйте, если это возможно, или предложите что-нибудь еще лучше. Спасибо


person 191180rk    schedule 27.11.2018    source источник


Ответы (2)


Мы используем гибридные соединения между одной из наших служб приложений и одной из нескольких виртуальных машин. Гибридное соединение Azure похоже на VPN. (Вы должны наклонить голову и прищуриться.)

В рамках службы приложений гибридные подключения могут использоваться для доступа к ресурсам приложений в других сетях. Источник: Гибридные подключения службы приложений Azure

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

person Mike Sherrill 'Cat Recall'    schedule 27.11.2018
comment
Спасибо за ответ, но мой вопрос касается «Гибридных подключений Azure Relay», а не «Гибридных подключений Azure Службы приложений». ‹Br/› - person 191180rk; 28.11.2018
comment
В качестве попытки повысить производительность я предлагаю использовать одно общее гибридное соединение для всех пользовательских запросов к локальному ресурсу, в этом случае, как гарантировать, что ответ, полученный от гибридного соединения, относится к отправленному запросу, поскольку все запросы / ответы пользователя проходят через общее соединение. . Пожалуйста посоветуй - person 191180rk; 01.12.2018

Просто оставьте HybridConnectionStream открытым и используйте его повторно. Не закрывайте его, когда он вам еще нужен. Вы можете отправлять несколько сообщений в одном потоке. Это чтение / запись, поэтому проблем быть не должно.

person user8862383    schedule 14.12.2020