> 백엔드 개발 > PHP 튜토리얼 > Beanstalkd, Ironmq 및 Amazon Sqs 비교

Beanstalkd, Ironmq 및 Amazon Sqs 비교

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-22 09:48:11
원래의
299명이 탐색했습니다.

Comparing Beanstalkd, IronMQ and Amazon SQS 키 포인트

서비스 설정 : Beanstalkd는 자체 호스팅되어 있으며 Linux 또는 Mac OS X에서 수동으로 설정해야하며 Ironmq와 Amazon SQ는 최소한의 로컬 설정을 갖춘 클라우드 호스팅 서비스입니다. SLA (Service Level Agreement) : Ironmq는 99.95% 상향 시간 SLA를 제공하며 Beanstalkd와 Amazon SQS는 그러한 프로토콜을 제공하지 않으므로 추가 요금으로 선택적인 지원 서비스를 제공합니다.

클라이언트 라이브러리 및 관리 인터페이스 :
    Beanstalkd는 오픈 소스 클라이언트 라이브러리를 지원하고 내장 관리 인터페이스가 부족한 반면 IronMQ 및 Amazon SQS는 공식 클라이언트 라이브러리에 사용자 친화적 인 관리 패널 또는 콘솔을 제공합니다.
  • 중복 및 보안 : IronMQ 및 Amazon SQS는 클라우드 기반 인프라와 토큰 및 키 키 인증과 같은 향상된 보안 기능을 통해 높은 중복성을 제공합니다. 내장 보안 조치. 성능 및 기능 : Beanstalkd는 동일한 네트워크 내에서 빠른 처리를 제공하지만 IronMQ에서 제공된 메시지 우선 순위와 같은 고급 기능이 부족합니다. Amazon SQS는 대기 시간을 줄이기 위해 긴 폴링을 지원하지만 BeanstalkD 및 IronMQ의 FIFO 시스템과 다른 메시지 검색 순서를 보장하지는 않습니다.
  • 소개 이 기사는 메시지 대기열의 개념을 소개하고 Beanstalkd, Ironmq 및 Amazon SQS의 세 가지 특정 메시지 큐 서비스의 장점과 단점에 대해 설명합니다.
  • 이 기사에 설명 된 모든 정보는 글을 쓰는 시점에 정확하며 통지없이 변경 될 수 있습니다.
  • 메시지 대기열이란 무엇입니까? QUOTE를 사용하면 메타 데이터를 저장하여 나중에 작업을 처리 할 수 ​​있습니다. 그들은 프로세스를 분리하는 작업을 연기 할 수있는 유연성을 제공함으로써 SOA (서비스 지향 아키텍처)를 개발하는 데 도움이 될 수 있습니다. 올바르게 적용되면 대기열은로드 시간을 줄임으로써 웹 사이트의 사용자 경험을 크게 향상시킬 수 있습니다.
  • 메시지 대기열의 장점 : 비동기 :
  • 대기열은 즉시 큐를 타고 나중에 실행합니다.
  • 디퍼 커플 링 : 별도의 응용 프로그램 논리. 탄성 :
  • 응용 프로그램의 일부가 실패하면 전체 애플리케이션이 충돌하지 않습니다.
중복 :

작업이 실패하면 다시 시도 할 수 있습니다. 보증 : 작업이 처리 될 것인지 확인하십시오.

확장 가능 :

많은 근로자들이 대기열에서 단일 작업을 처리 할 수 ​​있습니다.

분석 :

는 성능 문제를 식별하는 데 도움이 될 수 있습니다.

메시지 대기열의 단점 :

Async : 작업이 완료 될 때까지 기다려야합니다. 로드 :

큐의 각 작업은 처리되기 전에 차례로 기다려야합니다. 작업이 시간이 내려지면 각 후속 작업에 영향을 미칩니다.
    아키텍처 :
  • 응용 프로그램은 디자인 할 때 대기열을 고려해야합니다.
  • 메시지 대기열의 사용 사례 :
  • 시간이 소요되는 모든 프로세스는 대기열에 넣을 수 있습니다 :

    타사 API 에서 데이터를 보내거나 받으십시오 이메일 보내기 보고서를 생성 노동 집약적 과정을 운영
  • 당신은 또한 창의적인 방식으로 대기열을 사용할 수 있습니다 - 한 번에 한 명의 사용자 만 한 번에 정보에 액세스 할 수 있도록 작업을 잠금 작업 할 수도 있습니다.
  • 서비스
  • 많은 서비스를 사용하여 메시지 대기열을 구현할 수 있으며이 기사는 Beanstalkd, IronMQ 및 Amazon SQS의 차이점을 간략하게 설명합니다.
beanstalkd

beanstalkd는 "… 간단하고 빠른 작업 대기열"입니다. MIT 라이센스에 따라 오픈 소스 소프트웨어로 출시되었습니다. 문서가 양호하고 단위 테스트가 있으며 자신의 서버에서 무료로 실행하도록 다운로드 할 수 있습니다. 이 아키텍처는 메시지 대기열을 위해 특별히 설계된 Memcached에서 빌려줍니다.

itepoint 제목의 제목의 제목의 게시물은 저자 Dave Kennedy가 작성한 Beanstalkd와 함께 Beanstalkd와 Beanstalkd와 Ruby를 시작하는 방법에 대한 정보가 포함되어 있습니다.

Ironmq

IronMQ는 관리되는 편안한 웹 서비스입니다. 개발자가 무료 계층을 사용할 수 있으며 상용 응용 프로그램에서 다른 많은 가입 계층을 사용할 수 있습니다.

sqs

Amazon SQS는 메시지 대기열을 구현하기위한 저렴한 호스팅 솔루션입니다. AWS (Amazon Web Services)의 일부입니다. 아마존은 SQS를 포함한 네트워크 서비스를 평가하기위한 무료 계층을 제공합니다. 서버 설정

beanstalkd

Linux 및 Mac OS X에서 실행됩니다. 시스템에서 작동하는 방법에 대한 자세한 정보는 Beanstalkd 웹 사이트의 설치 지침을 읽으십시오. Beanstalkd 서버는 Windows에서 사용할 수 없습니다.

Ironmq 및 Sqs IronMQ 및 Amazon SQS는 클라우드 기반 네트워크 서비스입니다. 서버에서 응용 프로그램을 설정하는 대신 계정을 등록하고 대기열을 설정하면됩니다. 서비스 레벨 계약 (SLA)

beanstalkd beanstalkd는 자신의 호스팅 서버이며, 이용 가능 여부를 보장하는 것은 귀하의 책임입니다.

Ironmq

Iron.io는 월별 청구주기 동안 99.95%이상의 상향 시간 비율과 서비스 수준 계약을 체결합니다. 그들의

pratinum 패키지 (월 $ 2450)에는 서비스 수준 계약을 포함한 맞춤형 계약 약관이 있습니다. 서비스 포인트 환불을 제공합니다.

sqs

Amazon은 SQS에 대한 특정 서비스 수준 계약을 제공하지 않습니다. 추가 비용으로 SQ를 커버 할 수있는 지원 서비스를 제공합니다. 아키텍처

beanstalkd

푸시 소켓을 통해 통신하여 공급자와 근로자 간의 즉각적인 커뮤니케이션을 제공합니다.

공급자가 작업을 수정했을 때, 근로자가 연결되어 준비된 경우 즉시 보관할 수 있습니다. 작업은 근로자가 응답을 보낼 때까지 (삭제, 매장 등) 보유됩니다.

Ironmq SQS는 관리되는 RESTful 웹 서비스입니다.

IronMQ는 푸시와 같은 함수를 지원합니다. 공급자가 작업에 합류 할 때마다 가입자를 호출 할 수 있습니다. 일반적으로 표준 편안한 서비스를 사용하여 푸시 방법 대신 일자리를 얻거나 탈취하는 작업을 원합니다.
Beanstalkd IronMQ Amazon SQS
PUSH(套接字) HTTP 网络服务 HTTP 网络服务

sqs SQS는 관리되는 네트워크 서비스입니다.

SQS는 푸시를 지원하지 않습니다. 대기열에 작업이 있는지 확인하려면 정기적으로 여론 조사해야합니다.

SQS는 메시지 수신 대기 시간 (기본값 : 0 초, 최대 : 20 초)이라는 긴 설문 조사를 사용하여 작업자가 작업을 기다리는 동안 연결을 열어 두십시오. 이는 요청이 적고 소켓 개방 시간이 더 길어집니다.

클라이언트 라이브러리

beanstalkd 많은 프로그래밍 언어로 사용할 수있는 오픈 소스 Beanstalkd 클라이언트 라이브러리가 많이 있습니다. 이것들은 Beanstalkd의 독립형 프로젝트입니다.

Ironmq

IronMQ 클라이언트 라이브러리는 Iron.io에서 제공하며 개발 센터에서 다운로드 할 수 있습니다.

두 서비스를 유연하게 전환 할 수있는 경우 Ironmq와 함께 Beanstalkd 클라이언트 라이브러리를 사용할 수 있습니다. 서비스에 연결하려면 수동으로

oauth

명령을 구현해야 할 수도 있습니다. sqs

AWS 클라이언트 라이브러리에는 SQS 클라이언트 라이브러리가 포함되어 있습니다. 이들은 아마존에서 제공하며 많은 프로그래밍 언어로 제공됩니다.

관리 인터페이스

beanstalkd 그래픽 관리 인터페이스는 기본적으로 배포되지 않습니다. Beanstalkd 도구 페이지에는 디버깅 및 관리에 도움이되는 오픈 소스 프로젝트가 있습니다.

Ironmq

IronMQ 패널은 대기열을 관리합니다. 여기에는 대기열을 설정하는 방법을 설명하는 유용한 자습서가 포함되어 있으며 CURL을 통해 큐에 작업 (IronMQ : Message)을 추가하는 방법을 보여줍니다.

이 인터페이스를 사용하면 Ajax 중심 웹 사이트에서 대기열을 관리 할 수 ​​있습니다. 작업을 작성, 읽기 및 삭제하고, 과거 정보를보고, 대시 보드보기에서 큐 구성을 관리 할 수 ​​있습니다. sqs

AWS 관리 콘솔을 사용하면 SQS를 관리 할 수 ​​있습니다. 인터페이스는 무국적 프로토콜 위에 구축되므로 최신 정보를 얻으려면 새로 고침 버튼을 눌러야합니다.

작업 (SQS : 메시지)을 작성, 읽기 및 삭제하고 큐 구성을 관리 할 수 ​​있습니다.

중복

beanstalkd 중복성은 클라이언트 측에서 처리되며 서버가 다운되면 작업을 잃게됩니다.

Beanstalkd에는 이진 로그에 작업을 저장하는 옵션이 포함되어 있습니다. -B 옵션으로 Beanstalkd를 시작해야하지만 복구 큐는 서버 디스크에 액세스 해야하는 수동 작업입니다.

Ironmq

IronMQ는 지속성, 가용성 및 중복성이 높은 클라우드 기반 서비스입니다.

sqs

작업은 호스팅 된 영역의 여러 서버에 저장됩니다. 이 접근 방식은 서비스의 가용성을 보장하고 일자리를 잃어서는 안 보장합니다.
Beanstalkd IronMQ Amazon SQS
客户端 基于云 基于云
안전

beanstalkd

Beanstalkd에 연결하면 인증이 필요하지 않습니다. 공급자는 작업 대기열에 가입 할 수 있으며 작업 프로그램은 보안 모델을 통과하지 않고 작업을 유지할 수 있습니다. 따라서 Beanstalkd에서 실행되는 포트에 대한 외부 연결을 차단하기 위해 방화벽을 만드는 것이 좋습니다.

Ironmq

초대장 공동 작업자를 설정하여 메시지 대기열을 사용할 수 있습니다. 응용 프로그램에 대한 인증은 Iron.io 토큰 및 프로젝트 ID로 수행됩니다. sqs

SQS에 대한 인증은 Amazon API 키 및 키를 통해 구현됩니다. AWS Management Console을 통해 다른 AWS 계정에 대한 액세스 큐 권한을 부여하고 취소 할 수 있습니다.

속도

beanstalkd Beanstalkd는 공급자 및 작업자와 동일한 네트워크에 있어야하기 때문에 매우 빠릅니다. Beanstalkd는 때때로 매우 빠르며, 제공자가 대기열에 작업을 한 다음 MySQL에 전화하면 MySQL이 실행을 완료하기 전에 작업자가 작업을받을 수 있습니다.

Ironmq

요청 대기 시간은 HTTP를 통해 IronMQ RESTFUL 네트워크 서비스로 전송되기 때문에 증가합니다.

sqs

요청 대기 시간은 HTTP를 통해 SQS 네트워크 서비스로 전송되기 때문에 증가합니다.

작업은 다른 서버 및 데이터 센터에 배포해야하므로 즉시 획득 할 수 없습니다. 응용 프로그램, 제공자 또는 작업자가 EC2 인스턴스에서 호스팅되는 경우이 지연은 무시할 수 있습니다.

작업을 SQS로 찍을 때 즉시 사용할 수 없을 수 있습니다. 작업은 다른 서버로 전파되어야합니다. 일반적으로 최대 1 초 동안 기다립니다.

충실도

beanstalkd

큐는 FIFO입니다 (첫 번째는 첫 번째). 매우 중요한 과제가 우선 순위를 정할 수 있으며, 이는 과제가 탈취되는 순서에 영향을 미칩니다.

Ironmq

큐는 FIFO입니다 (첫 번째는 첫 번째). 작업을 먼저 처리 할 수 ​​없습니다.

sqs

작업 순서는 큐 입력 순서와 다릅니다. SQS는 분산 서비스이므로 각 서버의 작업은 다른 시간에 사용할 수 있습니다. 이것은 SQS를 설계 할 때 알아야 할 것입니다.
Beanstalkd IronMQ Amazon SQS
FIFO FIFO 无保证
可优先级 无优先级 无优先级
한 번에

를 얻으십시오 일회성 페치는 근로자가 시간을 정하지 않는 한 두 명 이상의 근로자가 동일한 직무를 동시에 수행하지 않을 것이라는 제한 사항을 설명합니다.

beanstalkd

Beanstalkd의 소켓 기반 아키텍처는 일회성 획득을 보장합니다.

Ironmq

IronMQ는 일회성 획득을 보장합니다.

sqs

SQ는 분산 서비스이기 때문에 일회성을 얻지 못하도록 보장되지는 않습니다. 실패-안전

beanstalkd 작업자가 설정 시간 내에 Beanstalkd에 응답하지 않거나 작업에 응답하지 않고 소켓이 닫히면 작업이 자동으로 대기열로 돌아갑니다. 그러면 다음 요청 된 근로자는 즉시 얻을 수 있습니다 (반동선이 필요하지 않음).

Ironmq 및 Sqs 근로자는 대기열에 연결하여 작업을 유지합니다. 이 순간부터 근로자는 큐에서 작업을 삭제하고 근로자를 유지할 수있는 시간을 설정했습니다.

새 대기열을 만듭니다

beanstalkd 작업이 큐에 합류하면 대기열이 자동으로 생성됩니다 (Beanstalkd : 파이프 라인). 수동으로 만들 필요가 없습니다.

Ironmq

대시 보드에서 프로젝트 를 만들어야합니다. 프로젝트에는 많은 줄이 포함되어 있습니다. 대시 보드에서 구성을 사용하여 작업이 발생하거나 수동으로 수동으로 큐를 만들 수 있습니다.

sqs

SQS의 대기열은 AWS 관리 콘솔에서 수동으로 설정해야합니다. 각 대기열은 큐 이름으로 사용되는 고유 한 URL을 생성합니다. SQS에 연결해야하기 때문에 대기열이 속한 영역 (예 : US-West-1, EU-West-1 등)에 유의하십시오.

프레임 통합

라 라벨 Laravel Framework에는 Beanstalkd, Ironmq 및 Amazon Sqs의 메시지 큐를 캡슐화하는 훌륭한 내장 래퍼가 있습니다. 응용 프로그램을 변경하지 않고 구성하여 서버를 변경할 수 있습니다.

PHP 코드 예

이 코드 예제는 서버에 연결하는 방법과 대기열에 대기열, 유지 및 큐를 큐에 대기하는 방법을 보여줍니다. 예외가 발생하면 작업을 묻습니다 (서버가 지원하는 경우).

작업이 큐에 들어간 후 실행을 중지하고 관리 도구를 사용하여 대기열을 디버깅하십시오.

(Beanstalkd, Ironmq 및 SQ의 PHP 코드 예제는 너무 길고 의사 원리 목표와 일치하지 않기 때문에 생략되었습니다.이 스 니펫은 원본 텍스트에서 쉽게 복사 할 수 있습니다.)

) .

메시지 대기열 팁

어떤 서비스를 선택하든 다음은 대기열을 강하게 유지하기위한 몇 가지 팁입니다. 메타 데이터 직렬화 작업에는 서버 작업 데이터 크기의 한계 내에있는 경우 원하는 데이터가 포함될 수 있습니다. 작업 기관에서 JSON을 사용하여 메타 데이터를 쉽게 전송할 수 있도록하십시오.

작업 데이터의 크기를 제한하십시오 작업을 채우기 위해 너무 많은 메타 데이터를 사용하지 마십시오. 데이터베이스에 일부 정보를 저장하고 나중에 처리하기 위해 ID를 큐 만 저장할 수있는 경우, 큐는 더욱 강력하고 디버깅하기가 더 쉽습니다.

숙제 상태를 추적 어떤 이유로 이미 처리 된 항목이 큐에 다시 들어가면 재 처리하지 않을 수 있습니다. 불행히도, 작업 데이터는 필수적이고 고유하지 않으므로 데이터베이스의 작업 상태를 추적하십시오.

이것은 작업 테이블에 열을 추가하여 항목을 처리 된대로 표시하는 것만 큼 간단 할 수 있습니다. 프로젝트가 처리 된 경우 대기열에서 프로젝트를 삭제할 수 있습니다.

용어

특정 단어는 Beanstalkd와 Amazon Sqs 사이에 다르게 사용됩니다. 다음은 빠른 번역 목록입니다

(Beanstalkd, Amazon Sqs 및 Ironmq의 비교 표는 너무 길고 의사 원리 목표와 일치하지 않기 때문에 생략되었습니다.이 테이블은 원본 텍스트에서 쉽게 복사 할 수 있습니다.)

용어집 대기열을 사용하면 다음 용어가 발생할 수 있습니다. 묻힌 (직업) - 작업을 실패한 상태에 두십시오. 작업이 수동으로

대기열로 돌아올 때까지 작업을 재 처리 할 수 ​​없습니다. IronMQ 및 SQ는 지원되지 않습니다. 사용자 - 작업 프로그램을 참조하십시오. 지연 - 일정 기간 동안 작업을 지연시키고 근로자에게 보내지 않습니다.

삭제 (작업) - 출발을 참조하십시오.

dequeue - 작업을 완료 한 것으로 표시하고 큐에서 삭제하십시오.

대기열을 입력하십시오 - 작업을 대기열에 추가하고 작업자가 사용할 준비를합니다.

FIFO— 일자리가 대기열에서 처리되는 방법, 즉 우선 아웃을 설명합니다. 이것은 가장 일반적인 유형의 메시지 대기열입니다.

filo- 일자리가 대기열에서 처리되는 방법, 즉 우선, 그리고 나서 나가는 방법을 설명합니다.

작업 - 처리 할 작업을 식별하는 데 사용되는 메타 데이터가 포함 된 대기열의 지연된 작업. 데이터베이스 행과 유사합니다.

kick (job) - 이전에 묻힌 직업을 대기열로 돌려 주어 직원이 얻을 수 있습니다. IronMQ 및 SQ는 지원되지 않습니다.

제공자 - 작업 서버에 연결하여 작업을 작성하는 클라이언트.

인용 - 유사한 작업을 대기열로 그룹화하는 방법. 데이터베이스 테이블과 유사합니다.

예비 (직업) - 직업을 근로자에게 전달하고 다른 근로자에게 전달되는 것을 막기 위해 잠그십시오.

작업자 - 작업 서버에 연결하여 작업을 유지, 삭제 및 매장하는 클라이언트. 실행 과정의 이러한 노동 집약적 인 부분.

결론

메시지 대기열 서비스에 대한 보편적 솔루션이 없습니다. Beanstalkd, Ironmq 및 Amazon SQS는 모두 고유 한 장점과 단점이 있으며 귀하가 사용할 수 있습니다. 이 기사는 기술 수준 및 프로젝트 요구에 가장 적합한 서비스에 대한 정보에 근거한 결정을 내릴 수있는 충분한 정보를 제공해야합니다.

어떤 메시지 큐 서비스를 사용 하시겠습니까? 현재 대기열을 사용하고 있다면 전환을 고려 하시겠습니까? 다른 사람을 도울 수있는 비 전통적인 방식으로 메시지 대기열을 사용 했습니까? 모든 사람에게 알리기 위해 메시지를 남겨주세요.

메시지 대기열 (FAQ)에 대한 질문이 자주 묻습니다

(메시지 대기열에 대한 자주 묻는 질문은 너무 길고 의사 원리 목표와 일치하지 않기 때문에 생략되었습니다.이 질문과 답변을 원본 텍스트에서 쉽게 복사 할 수 있습니다.) >

위 내용은 Beanstalkd, Ironmq 및 Amazon Sqs 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿