2013-02-13 2 views
5

이전 직장에서는 AMQP의 장점을 사용했지만 rabbitMQ 하위 프로젝트 개발에는 관여하지 않았습니다. 현재 제 직업에서 AMQP 구현 중 하나 (아마 rabbitMQ)를 통합하는 작업을 담당하고 싶습니다. AMQP 사용시 보스에게 확신시켜야 할 문제는 여기에 있습니다.언제 AMQP를 사용하는 것이 적절합니까?

"RabbitMQ in Action"을 읽었으며 Videla는 AMQP가 모든 시스템을 향상시킬 수 있다고 썼지 만 프로젝트 개선 방법을 모르겠습니다. 그 사이에 API 호출을하는 서버는 2 개 밖에 없으므로 지금은 확장 성 문제가 없습니다. 우리는 실제 화폐 흐름을 처리합니다. 이는 어떤 작업에 대해서도 성공 확인이 필요하다는 것을 의미합니다. 즉, 작업을 대기열에 넣을 수없고 "잊어 버릴"수 없습니다. AMQP가이 사건에서 가져올 수있는 혜택은 무엇입니까?

규모가 거의 필요하지 않을 때 상대적으로 작은 시스템에 몇 가지 실제 사례를 제공해 주시겠습니까? 표준 "로깅"및 "브로드 캐스트 메시지"상황을 생략하십시오.

+2

재미있는 질문이지만, "개발자"스택에 더 적합 할 것입니다. SO는 일반적으로 * RabbitMQ를 사용하여 프로그래밍 문제와 같이 집안의 구현 측면에 중점을 둡니다. –

+0

잠재적 인 dup : http://stackoverflow.com/questions/2388539/in-which-domains-are-message-oriented-middleware-like-amqp-useful/ –

답변

6

RPC과 같이 들리는 것 같습니다. 당신은 많은 메시지의 트랜잭션 (즉, 모두 하나의 트랜잭션)

  • (즉, 당신은 이상 바이너리를 플랫폼, 언어, 프로토콜 형식에 얽매이지 보낼 수 그것을 할 수

    • : 때문에 토끼는 RPC but it actually does 정말 좋은 작업 알려져 있지 않다)
    • 브로커 아이디어로 인해 더 많은 서버를 쉽게 추가하여 절차를 처리 할 수 ​​있습니다.
    • 은 쉽게
    • RabbitMQ 메시지가 계약 ...이 아니라 과정이다 RabbitMQ에서 아키텍처 수준
    • 에서 컨트롤의 반전의 일종이다 RabbitMQ의 관리자 UI로 메시지 흐름과 속도를 볼 수 있습니다. 이것이 올바른 방법입니다.

    지금 SOAP 말을이를 비교할 수 있습니다 :

    • SOAP 당신에게 브로커를 제공하거나 모든 벌인 서로에 대해 알 필요가 그래서 라우팅하지 않습니다. dev, staging, production을 위해 플러그인 IP 주소를 사용해야하는 것이 얼마나 짜증나는지 말할 수 없습니다.
    • SOAP은 트랜잭션을 제공하지 않습니다. 너 스스로 그렇게해야 해.
    • SOAP XML을 사용해야합니다.
    • SOAP 클라이언트보다 신뢰할 수있는 RabbitMQ 클라이언트가 있습니다. SOAP 호환성은 PITA입니다.
    • SOAP 메시지와 엔드 포인트가 있습니다. 어떤 경우에는 이것이 프로입니다.

    eventbus/messagebus의 아이디어를 사용하기 위해 RabbitMQ를 사용할 필요는 없습니다. 개인적으로 순수한 동기 RPC에서 비동기 이벤트 버스/메시지 버스로 이동하려면 많은 작업이 필요하기 때문에 어떤 종류의 응용 프로그램도 만들지는 않을 것입니다. 처음부터 올바르게하는 것이 더 좋습니다.