Большая разница во времени между вызовом зависимостей и вызовом запроса

#c# #.net-core #azure-application-insights #azure-aks

#c# #.net-core #azure-application-insights #azure-aks

Вопрос:

в моем приложении я время от времени замечаю некоторые задержки в работе, что делает меня менее довольным пользовательским интерфейсом.

Теперь в журнале Application insights я нашел этот шаблон:

  • вызов зависимости из микросервиса A в B занимает 4 секунды
  • вызов запроса в микросервисе B занимает пару микросекунд

вызов запроса всегда происходит почти в середине вызова зависимости; поэтому, скажем, через 2 секунды после выполнения вызова dependecy запрос отображается; и через две секунды после этого.

Нет, я знаю, что вы не можете полностью доверять этим номерам, но, с другой стороны, немного застрял с отладкой.

Мы используем службы Azure Kubernetes, и сначала я подумал, что мы столкнулись с ошибкой DNS. С двухсекундной задержки. Но я бы исключил это сейчас, поскольку запрос также имеет 2-секундную задержку после этого.

Любой совет, как продолжить?

Комментарии:

1. Какой у вас технический стек приложений (dotnet, java и т. Д.)? Также может возникнуть проблема с http-клиентом или тем, как вы используете.

2. C # с .net core 3.1. Мы всегда используем HttpClientFactory

3. ОК. Итак, какую конечную точку вы используете, когда, скажем, микросервис A вызывает B? Это похоже kubernetes.io/docs/concepts/overview/working-with-objects /… ?

4. я использую полный URL-адрес; поэтому я подозреваю, что он проходит через вход обратно; также пытался попасть в службу kubernetes напрямую через <servicename>.<namespace>.service.cluster.local, но столкнулся с той же проблемой

5. мы это исправили… Это ошибка: github.com/Azure/AKS/issues/1326 и работа с dnsConfig не сработала для использования, потому что мы использовали alpine images. мы переключились на обычные образы .net и применили обходной путь. Проблема устранена

Ответ №1:

мы это исправили… Это была / была эта ошибка: github.com/Azure/AKS/issues/1326 и обходной путь с помощью dnsConfig

Изначально это не работало для использования, потому что мы использовали alpine images. мы переключились на обычные образы .net и применили обходной путь. Проблема устранена