2012-04-28 4 views
0

몇 개의 토네이도 인스턴스에 nginx 서버 프록시 요청이 있습니다. 각 토네이도 인스턴스는 토네이도와 함께 제공되는 긴 폴링 채팅 데모를 기반으로합니다. 스크립트에는 콜백을 저장하는 배열이 있으며, 콜백은 클라이언트에 다시 메시지를 전달하는 데 사용됩니다.여러 토네이도 인스턴스간에 데이터 공유

문제는 다중 토네이도 인스턴스가있을 때 nginx가 라운드 로빈 전략을 사용한다는 것입니다. 콜백은 인스턴스마다 저장되므로 (요청 된 시간에 따라 중앙 집중식으로 유지되지 않으므로) 인스턴스 중 하나에 연결됩니다. 이 때문에 데이터를 푸시해야하는 경우 동일한 토네이도 인스턴스에 저장된 콜백으로 만 이동합니다.

여러 토네이도 인스턴스간에 데이터를 저장하는 일반적인 방법이 있습니까? memcached를 사용하려고 생각했지만 상점의 모든 키를 반복해야한다면 불가능할 수도 있습니다 (Id가 항상 필요로하지는 않지만). 여러 파이썬 프로세스간에 데이터를 저장하는 표준적인 방법이 있는지 알아보기를 원했습니다. 나는 또한 mmap에 대해 읽었지 만 콜백 (파이썬 메소드)을 저장하는 방법을 잘 모르겠다.

답변

1

준비 방법이 없으므로 RabbitMQ와 같은 mmap 또는 메시지 공급자 또는 Redis와 같은 간단한 noSQL DB를 사용할 수 있습니다. 귀하의 경우에는 아마도 ZeroMQ를 시도했을 것입니다.

+0

감사합니다. ZeroMQ를 사용해 보시고 아마도 memcached를 시도해보십시오. 내 유스 케이스는 필연적으로 memcached에 문제가되는 모든 키를 반복해야하지만 필요하지는 않습니다. – rajasaur

관련 문제