멀티 플레이어 게임을하고 있는데 메시지 대기열이 필요합니다 (예 : 메시지 수신, 메시지 출력, 중복 또는 삭제 된 메시지가 예기치 않은 캐시 퇴거가 없다고 가정).Memcache 기반 메시지 큐?
- MemcacheQ : http://memcachedb.org/memcacheq/
- 찌르레기 : http://rubyforge.org/projects/starling/
- Depcached : http://www.marcworrell.com/article-2287-en.html
- 참새 : 여기에 내가 알고 해요 memcache에 기반 큐는 http://code.google.com/p/sparrow/
내가 개념을 배웠다 memcache 대기열의 위치 : this blog post :
모든 메시지는 정수와 함께 키로 저장됩니다. 다음 키가있는 키와 대기열에 가장 오래된 메시지의 키가있는 키가 있습니다. 이들에 액세스하려면 증분/감소 방법이 원자 단위로 사용되므로 잠금 역할을하는 두 개의 키가 있습니다. 그들은 증가하고 리턴 값이 1이면 프로세스는 잠금을 가지며, 그렇지 않으면 프로세스는 계속 증가합니다. 일단 프로세스가 끝나면 값을 다시 0으로 설정합니다. 간단하지만 효과적입니다. 한 가지주의 할 점은 정수가 오버플로 될 것이므로 한도에 가까워지면 사용 된 키를 1로 설정하는 논리가 있습니다. 증가 작업이 원자 단위이므로 잠금을 유지하려면 두 개 이상의 memcaches가 중복되는 경우에만 잠금이 필요합니다.
내 질문에, App Engine에서 실행할 수있는 memcache 기반 메시지 대기열 서비스가 있습니까?
캐시의 항목 만료는 비활성 상태를 기반으로하므로 대기열 수명이 예상대로라면 좋을 것입니다. 그 성명에는 많은 수식어가 있지만 당신은 분명히 그 열에있는 잃어버린 물건을 다룰 필요가 있습니다. –
또한 GAE와 함께 메시지 대기열을 사용해야하지만 GAE는 Java와 Python 만 지원하기 때문에 위에서 언급 한 memcache 기반 대기열 서비스 (MemcacheQ, 참새 등)를 GAE와 연결하는 방법에 대해서는 모르겠다. 그것에 대한 어떤 생각을 알고 싶습니다. 또한 AmazonSQS 이외에도 GAE에서 사용할 수있는 다른 메시지 대기열 서비스는 무엇입니까? –