sourcecode

Azure 함수는 어떻게 확장됩니까?

copyscript 2023. 5. 24. 22:18
반응형

Azure 함수는 어떻게 확장됩니까?

Azure Functions에 대한 스케일링 설명서는 Azure Functions가 앱 인스턴스를 추가할 시기를 결정하는 방법에 대한 세부 사항을 조금 설명합니다.

예를 들어 Github 웹 훅에 의해 트리거되는 기능이 있다고 가정합니다.10,000명이 동시에 Github repo에 커밋하고(합병 충돌 없음 ; ), Github은 매우 짧은 시간에 내 함수를 10,000번 호출합니다.

무슨 일이 일어나기를 기대할 수 있습니까?구체적으로.

  1. Azure Functions가 웹 훅 호출을 조절합니까? 즉, 내 기능 앱이 부하가 높을 경우 Azure Functions가 특정 기능 호출을 거부합니까?
  2. Azure 함수는 어떻게든 요청을 큐에 넣습니까?그렇다면 어디/어떻게?
  3. 이 시나리오에서 Azure Functions는 몇 개의 내 함수 앱 인스턴스를 생성합니까?각 요청당 하나(예: 10,000개), 각 요청은 병렬로 실행됩니까?
  4. 부하가 없었기 때문에 앱 기능이 0개의 인스턴스로 축소된 경우 첫 번째 기능이 실행되기 전에 "준비 시간"을 볼 수 있습니까?대략 얼마나 걸립니까?
  1. Azure Functions는 웹 훅 호출을 거부하지 않지만, 갑작스러운 과도한 부하의 경우 일부 요청이 시간 초과될 수 있습니다.웹 아피스의 경우 클라이언트에 대한 재시도를 포함하는 것이 좋습니다.
  2. 영구적인 위치에는 대기열이 없습니다.이들은 IIS에 의해 관리됩니다(구현 세부 정보).
  3. (구현 세부사항) 인스턴스 수는 어렵지 않습니다.공개되지 않은 확실한 보호 기능이 있지만, 확장성이 상당히 뛰어납니다.요청은 여러 인스턴스에서 처리됩니다.
  4. 네. 현재로서는 상당한 양(초)이지만 개선 작업을 진행할 예정입니다.성능에 민감한 상황에서는 카나리아 또는 타이머 트리거를 사용하여 절전 모드를 유지하는 것이 좋습니다.

저는 Azure Functions 팀에서 왔습니다.구현 세부 정보로 표시한 내용은 약속이 아니며 서비스를 발전시키면서 변경될 가능성이 높습니다. 투명성을 위한 시도일 뿐입니다.

  1. 오늘 시험을 치렀습니다.몇 초 이상 걸렸습니다 :(
ACTUAL PERFORMANCE
--------------
ClientConnected:  13:58:41.589

ClientBeginRequest:   13:58:41.592

GotRequestHeaders:    13:58:41.592

ClientDoneRequest:    13:58:41.592

Determine Gateway:    0ms

DNS Lookup:       65ms

TCP/IP Connect:   40ms

HTTPS Handshake:  114ms

ServerConnected:  13:58:41.703

FiddlerBeginRequest:  13:58:41.816

ServerGotRequest: 13:58:41.817

ServerBeginResponse:  14:00:36.790

GotResponseHeaders:   14:00:36.790

ServerDoneResponse:   14:00:36.790

ClientBeginResponse:  14:00:36.790

ClientDoneResponse:   14:00:36.790


Overall Elapsed:  **0:01:55.198**

언급URL : https://stackoverflow.com/questions/37311598/how-do-azure-functions-scale-out

반응형