문제

내가 가까이 놓 레일 앱은 일반적인 네트워킹 기능(메시지,wall,etc.).내가 사용하려면 몇 가지 종류의 배경 가공(대부분 Bj)오프로드로부터 작업을 요청/응답을 주기입니다.

이것은 일어날 때 사용자 친구를 초대하는 이메일을 통해 가입한 보호 기능을 제공합니다.

나는 확실하지 않다면 내가 그냥 이러한 초대하고 알림 데이터베이스,모델을 사용하고 다음 단지 과정과 작업자 프로세스는 모든 분는 경우 또는 나는 가야한 명,저장하는 메시지에 그대가 그리고 나자에서 검색하고 명 처리(전송을 초대합/알림).

아마존 방식을 얻을 것 부하 제 데이터베이스 그러나 나는 것 같은 느리게 메시지를 검색합니다.

당신은 무엇을 생각하십니까?

도움이 되었습니까?

해결책

타이틀은 Rails Performance 문제가 있다고 말하지만 확실하게 이것을 알고 있습니까? 나머지 질문에서 가능한 미래의 성과 문제를 예상하려고하는 것처럼 들립니다. 성능 문제를 현명하게 다루는 유일한 방법은 응용 프로그램을 야생으로 가져 와서 프로파일하는 것입니다. 그렇게하면 실제 성능 문제가 무엇인지에 대한 경험적 데이터를 제공합니다.

Amazon SQS가 무료가 아니며이를 사용한다는 사실은 거의 확실하게 응용 프로그램에 복잡성을 더할 것이라는 사실을 감안할 때, 나는 그것으로 마이그레이션 할 것입니다. 만약에 그리고 언제 데이터베이스로드가 문제가됩니다. 앱이 생방송 될 때 다른 문제에 직면 할 수 있기 때문에 두 번째 추측 문제가 발생하기 전에 두 번째 추측 문제를 시도하지 마십시오. 일부는 고려하지 않았을 것입니다.

요점은 이미 배경 처리를 사용하기로 결정한 것입니다. 즉, 순간이 아닌 모든 종류의 처리가 Rails의 요청/응답주기 내에 속하지 않기 때문에 Rails를 차단합니다. 프로세스. 필요한 경우 나중에 Amazon으로 항상 확장 할 수 있습니다.

다른 팁

Amazon EC2에서 앱이 이미 호스팅 되었습니까? 아마도 기존 앱을 AWS로 옮기지 않아서 SQ를 사용할 수 있지만 이미 Amazon의 인프라를 사용하고 있다면 SQS IA는 훌륭한 선택입니다. 당신은 확실히 자신의 메시징 시스템 (예 : RabbitMQ)을 설정할 수 있지만, SQS를 사용하여 걱정해야 할 일이 적습니다.

Rails 앱에 백그라운드 처리를 추가 할 수있는 옵션이 많이 있습니다. Delayed_job 또는 배경 _job,하지만 개인적으로 가장 좋아하는 것입니다 작업. 작업의 실제 구현을 변경하지 않고도 다른 배경 러너를 연결할 수있는 멋진 추상화 레이어를 제공합니다.

나는 유지한다 SQS 클라이언트를 추가하는 작업 포크. 몇 가지 단점이 있습니다 (주석 읽기 또는 내 블로그 게시물 자세한 내용은) 그러나 전반적으로 마지막 스타트 업에서 우리에게 잘 작동했습니다.

또한 별도의 루비 (비 레일) 프로젝트에 SQ를 사용했으며 일반적으로 신뢰할 수 있고 빠르게 발견되었습니다. James가 위에서 지적한 것처럼, 한 번에 최대 10 개의 메시지를 읽을 수 있으므로 확실히 그렇게하고 싶을 것입니다 (내 워크링 SQS 클라이언트 가이 작업을 수행하고 메시지를 로컬로 버립니다).

동의함으로 존 Topley 는 당신이 이상하고 싶지 않아게 복잡하는 경우 응용 프로그램이 필요하지 않습니다.즉 시간이 있다면 그것은 좋은 이런 종류의 결정을 초기에,당신은 당신이 예상 높은 부하를 처음부터 다시 시작하시겠습니까?당신은 회전이 기존 사용자의 사료 또는 그 공트지 않을 수 있는 걸까?

당신이 알고있는 경우에 당신은 처리해야 하는 다량의 트래픽에서 시작한 다음이 될 수 있는 단계입니다.지 않으려면 돈을 쓸 것을 사용하여 명을 살펴의 일부를 무료 큐 솔루션은 거기에 다음과 같 Shapes.

나는 현재 밀어 몇 백만 메시지 한 달을 통해 명시하고,그것은 꽤 잘 작동합니다.는지 확인할 계획이나 시간에서,그래서 당신은 필요한 작업에서 일부 재시도시설 지수 backoff.중 하나 좋은 것은 당신이 얻을 수 있는 10 개의 메시지를 동시에 속도를 높일 수 있도록 할 수있는을 통해 작업 대기열을 사용할 수 있습 중 하나는 요청을 얻 10 메시지와 과정을 그들에게 1 1.

Amazon SQS는 다음과 같은 것들이 중요한 경우를 제외하고는 훌륭한 서비스입니다.

  • 성능
  • 합법적인
  • 승인 및 거래
  • 메시징 관용구 메시지 속성
  • 보안, 진정성 및 대기열
  • 권한

이러한 것 중 하나가 중요하다면 Stormmq, Rabbitmq 또는 onlinemq.com과 같은 실제 엔터프라이즈 MQ 서비스를 살펴 봐야합니다.

이 블로그 시리즈는 Amazon SQS를 펀치를 막지 않고 StormMQ와 비교하기 때문에 흥미로운 것을 발견했습니다.http://blog.stormmq.com/2011/01/06/apples-and-oranges-performance/

EC2로 이동하는 데 문제가있는 경우 onlinemq.com과 같은 다른 서비스를 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top