이 글은 주로 모든 사람을 위한 php-beanstalkd 메시지 큐 클래스 예제 코드를 공유하며, 관심 있는 친구들은 이를 참조할 수 있습니다.
개요:
Beanstalkd, 고성능 경량 분산 메모리 큐 시스템은 원래 설계되었습니다. 백그라운드에서 시간이 많이 걸리는 작업을 비동기적으로 실행하여 대용량 웹 애플리케이션 시스템의 페이지 액세스 지연을 줄이기 위해 950만 명의 사용자가 있는 Facebook Cause 애플리케이션을 지원했습니다. 나중에는 오픈 소스가 되었고 이제 PostRank가 대규모로 배포 및 사용되어 매일 수백만 개의 작업을 처리합니다. Beanstalkd는 전형적인 Memcached와 유사한 디자인으로 프로토콜과 사용법이 동일하므로 memcached를 사용해 본 사용자라면 Beanstalkd가 친숙하게 느껴질 것입니다.
Beanstalk 핵심 개념:
job: 비동기 처리가 필요한 작업을 튜브에 배치해야 합니다.
tube: 균일한 유형의 작업을 저장하는 데 사용되는 잘 알려진 작업 대기열
producer: 작업의 생산자
consumer: 작업의 소비자
간단히 말하면 프로세스는 단 한 문장으로 구성됩니다.
Producer는 작업을 생성합니다. task job을 작성하고 이를 튜브에 푸시하면 소비자가 튜브에서 작업을 가져와 실행합니다(물론 이 모든 작업의 전제는 콩나무 서비스가 실행 중이라는 것입니다).
1. Weibo 게시
2. 팬에게 푸시(100만명의 팬이 있으면 오랫동안 차단되며 사용자는 지연을 느낄 것입니다)
웨이보에 콘텐츠를 게시하려면 위 두 가지가 완료되어야 합니다. 웨이보를 게시하려면 간단한 데이터베이스 작업 하나만 필요합니다.
하지만 그에게 푸시하는 팬은 데이터베이스를 100만 번 작동해야 하므로 사용자가 게시하게 됩니다. a Weibo 결과가 성공적으로 반환되기까지 오랜 지연이 있습니다.
큐 방식을 사용하면 사용자가 Weibo 메시지를 보내고 결과가 즉시 반환됩니다. 메시지가 성공적으로 전송되면 푸시의 나머지 부분은 비동기 실행을 위해 대기열에 추가됩니다.
푸시는 특별히 시기적절할 필요가 없습니다. , 몇 초 또는 수십 초의 지연이 허용됩니다.
위 내용은 PHP의 beanstalkd 메시지 대기열 및 클래스 공유에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!