#c# #azure #exception #azure-functions #socketexception
Вопрос:
Наше решение состоит из ряда функций Azure, которые имеют триггеры EventHub, которые подписываются на EventHub. Функции De образуют цепочку, и сообщения передаются от функции к функции через узлы событий.
Мы привыкли получать исключения сокетов при отправке этих сообщений, которые мы исправили, реализовав наш собственный код повторной попытки.
Примерно с марта / апреля этого года мы получаем различные исключения сокетов, которые, по-видимому, исходят от процессора Eventhub (так что принимающая сторона, а НЕ отправляющая сторона).
Вот фрагмент трассировки стека:
[{"assembly":"Microsoft.Azure.EventHubs.Processor, Version=4.3.2.0, Culture=neutral, PublicKeyToken=7e34167dcc6d6d8c","method":"Microsoft.Azure.EventHubs.Processor.AzureStorageCheckpointLeaseManager <ReleaseLeaseCoreAsync>d__37.MoveNext","level":0,"line":0}]
Насколько мы можем судить, мы не теряем никаких сообщений, и код, похоже, самокорректируется. Ошибка действительно появляется несколько раз в день.
Мы связались с Microsoft, но они не могут понять, что происходит, если мы не включим одно из наших решений в общедоступный план, чтобы они могли сделать с этим больше. К сожалению, наша компания по соображениям безопасности этого не позволяет.
Сталкивались ли вы с этой проблемой раньше и нашли ли вы какое-либо решение этой проблемы?
Комментарии:
1. Вопрос: с марта / апреля вы увеличили количество обрабатываемых событий в заявке?
2. кроме того, можете ли вы указать, как вы передаете события из одной функции в другую? Используется ли привязка вывода? Можете ли вы также поместить информацию host.json?
3. Конечно! Во-первых, не было увеличения нагрузки, всегда были пики, но эти исключения происходят ежедневно, будь то занятость или просто общая нагрузка. Ничего не изменилось ни до, ни после марта/апреля. Наши функции отправляют сообщение на веб-страницу события, после чего следующая функция будет считывать информацию с веб-страницы события (каждая страница события находится в одном пространстве имен) Function1 —> Eventhub —>> Function2. Каждая функция находится в отдельном приложении функций.
4. публикуете ли вы сообщения с помощью httpclient?
5. Я отвечаю от имени Ника Слейтерса, который в настоящее время находится в отпуске. Ответ: Мы используем обычный пакет SDK Microsoft для отправки событий в eventhub. Ошибка, которую мы наблюдаем, по-видимому, находится на приемном конце цепочки.