RabbitMQ와 같은 Advanced Message Queuing Protocol을 언제 사용해야합니까? [닫은]


답변:


25

초당 많은 요청을 수락 할 수있는 웹 서비스가 있다고 가정하십시오. 또한 많은 일을하는 회계 시스템이 있는데 그 중 하나는 웹 서비스에서 오는 요청을 처리하는 것입니다.

웹 서비스와 회계 시스템 사이에 대기열을두면 다음을 수행 할 수 있습니다.

  • 두 응용 프로그램이 대기열 관리 시스템의 구성 매개 변수와 대기열 이름을 알아야하기 때문에 두 응용 프로그램 사이의 연결이 적습니다. 여기서 중요한 것은 일반적으로 큐 관리 시스템을 이동하는 것보다 일부 응용 프로그램을 다른 서버로 이동할 가능성이 높다는 것입니다.
  • 단기간에 많은 요청이 들어 오면 회계 시스템은 모든 요청을 처리 할 수 ​​있습니다.
  • 숫자가 너무 커지면 일부 요청을 유지합니다.

물론 응용 프로그램 수가 두 개보다 훨씬 더 복잡한 상황이있을 수 있으며 그 사이의 통신을 관리해야합니다.


1
1) A는 C에 결합 된 A와 B에 결합 된 C보다 어떻게 B에 결합되어 있습니까?
Charlie

2) 대기열을 회계 시스템에 넣는 이유는 무엇입니까? 추가 구성이 필요한 새로운 블랙 박스 부품을 도입하는 이유는 무엇입니까?
Charlie 9

2
질문 1에 대한 @Charlie, 나는 대답을 수정했습니다. 질문 2에 대해, 대기열을 회계 시스템에 넣음으로써 정확히 무엇을 의미합니까? 큐 데이터 구조를 사용 하시겠습니까? 이 경우이를 유지하기 위해 더 많은 코드를 작성해야합니다. 데이터베이스 테이블을 사용하여 큐를 시뮬레이트 하시겠습니까? 다시 테이블을 관리하기 위해 좋은 코드를 작성해야합니다. 내가 생각하지 않은 다른 것?
Виталий Олегович

1을 잘못 입력했습니다. 큐가 웹 서비스에 배치되거나 큐가 애플리케이션에 배치되면 하나의 커플 링이 남아 있습니다. 그러나 큐가 둘 다 외부인 경우, 이제 커플 링이 두 배이고, 관리 / 실패 지점이 50 % 더 많습니다. 타사 대기열을 선택하면이 새로운 패키지에 대해서도 배우고 구성 할 수 있으며, 사용에 관심이없는 수많은 기능, 대기열을 범용으로 만들고 유용한 기능으로 인해 어려움을 겪을 수 있습니다. 자신보다 더 많은 상황.
Charlie

@Charlie, 아마도 단일 메시지 브로커가 여러 시스템에서 사용될 것입니다. 또는 브로커에 대한 단일 프록시가 있습니다. 이 경우 모든 시스템에서 초당 수백만 개의 메시지를 처리 ​​할 수있는 단일 메시징 어플라이언스를 사용하고 있습니다. 하나의 시스템에서 메시지가 생성되고 관심있는 시스템이 해당 메시지를 수신하고 적절한 논리를 수행 할 수 있기 때문에 실제로 더 큰 분리를 생성합니다. 유일한 연결은 큐 자체에 있습니다.
Michael Brown

16

웹 서비스와 다른 백엔드 서비스 사이에 버퍼를 제공하는 것 외에도 메시지 큐는 고급 시나리오에 사용될 수 있습니다. Rabbit MQ (및 다른 성숙 Message Queue 제품 (MOM-Message Oriented Middleware)라고도 함)는 다른 규칙에 따라 메시지를 라우팅하고 분배하도록 구성 할 수 있습니다.

예를 들어 Pub-Sub 라우팅 기술을 사용하면 단일 소스가 메시지를 보내고 많은 리스너가 메시지를 받도록 할 수 있습니다. 이것은 일반적으로 주식 거래 소프트웨어에서 사용되어 바닥에있는 사용자를 업데이트합니다.

또한 대부분의 MOM에는 여러 언어 및 플랫폼에 대한 SDK가 있으므로 여러 플랫폼에서 작성된 응용 프로그램을 통합하는 데 사용할 수 있습니다.

이는 MOM에서 사용 가능한 몇 가지 시나리오에 불과합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.