2011-12-16 1 views
6

이러한 요구 사항을 가진 메시지 대기열을 찾고 있습니다. 그것을 찾을 수 없습니다; 어쩌면 가장 가까운 rabbitmq - lvc 플러그인 (하지만 나는 막대기와 앞에 머물 라인의 첫 번째 가치가 필요합니다). 누구나이를 지원하는 기술을 알고 있습니까?중복 메시지를 삭제할 수있는 엔터프라이즈 메시지 큐가 있습니까 (첫 번째 값은 유지됩니까)?

  • 메시지 큐는 메시지 대기열 중복되는 경우, 메시지 자체가 거부하거나 삭제하거나 큐잉 FIFO
  • 이다.

예를 들면, 제작자는이 순서에 따라 큐에 이들 세 개의 메시지 (a 판별 값 각각) 입력 : M1 (판별 = 7654), M2 (판별 = 2,435), M3 (판별 = 7654). 이제 메시지 큐에서 M3이 M1과 동일한 판별 자 값을 가지므로 M3를 삭제/거부합니다. 소비자는 M1, M2 만받습니다.

감사 톰

답변

4

나는 다른 전송을 모르지만에서는 WebSphere MQ이 작업을 수행하지 않는 것을 알고 나는 설명은 왜 카테고리에 걸쳐 광범위하게 적용 할 것이라고 생각합니다. 나는 매우 놀랄 것입니다 어떤 메시지가 실제로 전달을 찾을 수 있습니다.

  • 비동기 메시지가 원자 수로되어있다 : 여기에 몇 가지 이유가 있습니다. 서로 다른 공급 업체는 메시지 선호도 (두 개 이상의 메시지 간의 관계)에 대한 자체 조정을 수행하지만 일반적으로 메시지 선호도는 피해야합니다. 유스 케이스는 메시지 유사성을 처리하기 위해 전송을 요구할뿐만 아니라 관련 메시지 사이의 불확실한 간격으로 전송을 요구한다.
  • 메시지 페이로드는 blob입니다. 성능상의 이유로 WMQ는 압축 또는 코드 페이지 변환을 제외한 메시지 페이로드를 처리하지 않습니다. 메시지 페이로드를 구문 분석해야하는 모든 것이 WebSphere Message Broker, DataPower 또는 WebSphere ESB의 작업입니다. 성능이 좋다고 주장하는 모든 메시징 전송은 페이로드 구문 분석으로 인해 코드 경로가 길어지고 비선형 성능이 저하되므로 비슷한 문제가 발생할 것으로 예상됩니다. 예외는 메시지 속성이지만 WMQ는 선택을 위해서만 이것을 사용하며, 일반적으로 그렇습니다.
  • 무 상태 연산입니다. 전송으로 응용 프로그램의 상태는 영구 메시지에 저장 될 수 있지만 전송 계층의 상태는 서로 다른 작업 단위에 적용되는 응용 프로그램의 상태에 따라 달라져서는 안됩니다.. 다시 말하면, ESB 유형의 제품은 응용 프로그램 상태의 일부인을 메시징 계층에 위임 할 때, 특히 그러한 관리가 많은 작업 단위에 걸쳐있는 경우에 가장 적합합니다.
  • 보증 된 납기. WMQ는 영구 메시지를 잃지 않도록 설계되었습니다. 앱이 명시 적으로 만료를 설정하면 발신자가의 메시지를 확인했기 때문에 메시지가 이 될 수 있습니다. 메시지가 비 지속성이라면 예외적 인 상태 일 수도 있고, 단지 일 것입니다. 왜냐하면 보낸 사람이이라고하는 것이 좋다고했기 때문입니다. 설명하는 사용 사례는 발신자가 OK라고 말한 것이 아니라 수신자가 OK라고 말했기 때문에가 아니라 발신자가 나와서 대기열로 들어간 우연한 타사와의 상호 작용으로 인해 메시지가 사라질 수 있습니다. 중복 가치. 첫 번째 메시지의 헤더 또는 코드 페이지에 문제가있어 롤백이되면 어떻게됩니까? 만약 내가 공격자가 discriminator에 가능한 모든 4 자리 값을 가진 쓰레기 메시지를 분출했다면?

내가 말했듯이 다른 메시징 제품을 알지 못해서 귀하의 요구 사항을 충족시키는 뭔가가있을 수 있으며, 그렇다면 그것에 대해 읽으 려합니다. 그러나 아무도 대답하지 못하는이 게시물은 이유에 대해 밝힐 수 있습니다.

+0

감사합니다. T Rob. 메시징 큐가 없으면 메시지 본문을 검사하지 않고 왜 폐기하지 않는 것이 올바른 방법인지 알 수 있습니다. 나는 처리를 추적하는 외부 테이블 (discriminator -> 마지막 처리 시간)을 사용하여이 문제를 해결할 수 있습니다. 그런 다음 대기열의 메시지를받은 사람은 누구든지 처리 할 시간이거나 폐기 할 시간이되면 스스로 결정할 수 있습니다. 테이블 쿼리에 약간의 오버 헤드를 추가해야합니다. 그러나 아마도 더 좋은 모델 일 것입니다. – Tom

+0

도움이 되었기 때문에 다행이지만 다른 답장을 기다리고 있었기 때문에 다른 운송 수단이 이런 종류의 요구 사항에 관해 읽을 수 있습니다. 어떤 경우에도 후속 조치에 감사 드리며 동의합니다. –