로드

2016-07-12 5 views
1

시나리오 1 (작업) : 다음은 잘 작동 시나리오 : 나는이 개 공개적으로 액세스 할 수있는 상태 비 저장 서비스 푸와 바로드

  • 푸 있습니다 : 2 개 인스턴스를 듣기 포트 8081
  • 바 : 1 예는 포트에서 수신 요청을 보내기 8082

중 하나 http://clusteruri:8081 또는 http://clusteruri:8082 잘 작품 d Foo의 경우 요청이 두 인스턴스가 호스팅되는 두 노드 사이에 잘 ​​분산되어 있음을 알 수 있습니다.

시나리오 2 (작동하지 않음)는 : URI 접두사 http://+:8080/foo

  • 바에서 듣고,이 경우 : 다시 2 무 서비스 푸와 바

    • 푸 : 여기에 시나리오는 내가 수 있도록하고 싶습니다 : 1 예, URI 접두어에 듣고 http://+:8080/bar

    두 서비스가 동일한 포트에서 수신하지만,주의하시기 바랍니다 다른 경로 (WebListener와 같이 http.sys 위에 구축 된 호스트를 사용하여 달성).

    여기에 일이 홀수가 나기 시작합니다. ASF /로드 밸런서가 실제로이 사실을 이해하지 못하고 모든 3 개의 노드가 포트 8080을 수신 대기한다고 생각하여 Foo에 대한 일부 요청이 노드를 호스팅하는 Bar 및 다른 노드 방법 라운드.

    ASF /로드 밸런서는 서비스가 전용 포트에서 수신 대기하는 시나리오를 자동으로 처리 할 수 ​​있지만 실제로는 동일한 포트 (다른 ​​경로)에서 수신 대기하는 서비스는 지원하지 않습니다.

    내 질문에

    • 는 시나리오 1 작동처럼 작동 시나리오 2를 얻을 수있는 방법이 "상자 밖으로"거기 (즉, 라우팅을 수행하는 사용자 정의 응용 프로그램 게이트웨이 서비스를 구현하지 않고)?
    • 누군가 시나리오 1을 작동시키기 위해 ASF가 구성/통신하는 방법에 대해 설명해 줄 수 있습니까? 나는. ASF가 Foo에 대한 요청이 Node0 또는 Node1로 가야하고 Bar에 대한 요청이 요청이 전송 된 포트에 따라 Node2로 가야하는로드 밸런서를 구성한 곳을 어디서 볼 수 있습니까?
  • +0

    당신이 통신 수신기의 코드를 공유하시기 바랍니다 수 :

    여기에 유용 할 수 있습니다 좀 더 배경 정보를입니까? 그렇게하면 프록시를 만드는 방법. – cassandrad

    답변

    2

    서비스 패브릭에는 네트워크 부하 분산 장치가 없습니다. 서비스 패브릭은 일련의 VM에서 실행되는 클러스터링/오케스트레이션/응용 프로그램 플랫폼입니다. ARM (또는 Azure 포털)을 통해 Azure에 클러스터를 만들면 표준 ARM 템플릿에서 얻는 리소스 중 하나가 Azure Load Balancer이지만 배치하는 VM에 대해서만 알고있는 완전히 별개의 것입니다 서비스를 실행하는 것이 아닙니다. 로드 밸런서 구성은 ARM 템플리트에서 (또는 Azure 포털을 통해) 수행하는 작업입니다. 서비스 패브릭은로드 밸런서에 대해 알지 못합니다. 자체 하드웨어에서 클러스터를 설정하는 경우 기대할 수있는 것과 동일한 토폴로지입니다.

    Azure에서로드 밸런서가 레이어 4로드 밸런서이기 때문에 시나리오 1이 작동하고 2가 작동하지 않는 이유는 열린 포트를 인식하지만 HTTP 및 URL과 같은 애플리케이션 프로토콜을 이해하지 못하기 때문입니다. 노드에 다른 응용 프로그램이 있다는 것을 이해하십시오. 열려있는 포트 만 있으면됩니다. 그러나 ALB를 사용하면 ALB에게 트래픽을 보낼 노드를 알려주는 HTTP probes을 설정할 수 있습니다. https://azure.microsoft.com/en-us/documentation/articles/service-fabric-connect-and-communicate-with-services/