2012-04-28 9 views
4

이것은 이전에 묻지 만 특히 철저히 대답하지 않았습니다.레일즈는 다른 서버에서 동시 요청을 어떻게 처리합니까?

의 당신이 레일은에 WEBrick, 잡종, 아파치 (여객 Phusion를 통해) Nginx에 등을 지원하는 여러 웹 서버 중 하나에서 실행 있다고 가정 해 봅시다. 서버는 두 개의 동시 GET을받습니다. 어떻게됩니까? 이것은 분명히 어디에서 문서화되어 있습니까?

는 기본적으로 궁금 해요 :

  • 는 서버에서 모든 시간을 만들어 새로운 인스턴스 또는 레일인가?
  • 요청을 처리하기 위해 기존 인스턴스 (이미로드 된 Rails가있는 루비 프로세스)를 다시 사용하려고합니까?
  • 새로운 루비 프로세스를 시작하지 않고 레일스를 꽤 느리게 다시로드하지 않습니까?

감사합니다. 철저한 설명에 대한 링크는 크게 감사하겠습니다.

+0

레일은이 점에서 절대적으로 아무것도하지 않으며, 그것에 대해 상관하지 않는다. 전적으로 사용중인 서버에 달려 있습니다. –

답변

0

일부 사용 근로자 (아파치, phusion, 유니콘), 일부는하지 않습니다. 작업자를 사용하지 않으면 응용 프로그램이 스레드 안전성이있는 곳마다 실제로 달라집니다. . 그렇다면 한 번에 둘 이상의 요청이 제공 될 수 있습니다. 그렇지 않으면 Rack::Lock이 차단됩니다. 작업자가 각각 (별도의 프로세스) 인 경우 각각 요청을 수행 한 후 마스터가 새 요청을 할당 한 풀로 돌아갑니다. Read on

관련 문제