프리앰블 : 매우 일반적인 사용 사례로 가정하는 제안을 작성하려고하며 Amazon의 SWF 및 SQS를 사용하고 싶습니다. 내 목표. 내가하는 일에 더 잘 어울리는 다른 서비스가있을 수 있으므로, 제안 사항이 있으면 그들을 버리십시오.SQS 메시지를 기반으로 SWF 워크 플로우 트리거링
문제 : 가장 기본적인 것은 클라이언트 (모바일 장치, 웹 서버 등)가 클라이언트에 대한 응답없이 비동기 적으로 처리되는 메시지를 게시하는 것입니다.
의도 된 구현은 클라이언트가 미리 결정된 SQS 큐에 메시지를 게시하는 것입니다. 이 시점에서 클라이언트가 완료됩니다. 또한 대기열에서 메시지를 가져와 (일부 조작 후) 메시지를 Dynamo DB에 배치하는 책임이있는 정의 된 SWF 워크 플로를 갖게 될 것입니다. 다시 모든 것이 매우 간단합니다.
내가 알아낼 수없는 것, 워크 플로를 시작하는 방법입니다. 내가 읽은 워크 플로는 무한정의 프로세스가 아닙니다. 그것은 시작, 중간, 끝이 있습니다. SWF 설명서에 따르면 워크 플로는 1 년 (Setting Timeout Values in SWF) 이상 실행할 수 없습니다.
내 질문은 : 워크 플로가 하나의 메시지 처리 흐름을 나타내는 것으로 가정하면 메시지가 SQS에 게시 될 때마다 워크 플로를 어떻게 시작할 수 있습니까?
경고 : SQS 대신 SNS도 사용하고 있습니다. 그러면 SNS에 가입 할 수있는 서버를 실행 한 다음 알림이 게시 될 때마다 워크 플로를 시작할 수 있습니다. 그것은 확실히 하나의 해결책이지만, 나는 처리되고있는 메시지의 수에 따라 관리/확장해야하는 단일 웹 서비스를위한 서버를 설정하는 것을 피하고 싶습니다. SQS/SWF를 처음 사용하는 이유는 걱정할 필요가없는 자동 크기 조정 시스템을 갖추는 것입니다.
미리 감사드립니다.
Amazon SNS의 속도를 제한하면 문제의 축소를 줄일 수 있습니다. 여기에있는 설정을 참조하십시오. http://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html#delivery-policy-maximum-receive-rate – brightball