WebSphere MQ 낮은 대기 시간 메시징 - JMS (또는 JMS Like) API가 있습니까?

StackOverflow https://stackoverflow.com/questions/1543996

  •  20-09-2019
  •  | 
  •  

문제

우리는 현재 JMS를 통해 IBM MQ를 사용하고 있지만 처리 할 수있는 것보다 더 많은 메시지를 푸시하는 것 같습니다. 이상하게도 문제는 간헐적으로 보입니다.

메시지는 가격이므로 보장 할 필요가 없으므로 빨리 보내면됩니다.

IBM은 a 낮은 대기 시간 제품, 그것이 아마도 그것이 더 나은 솔루션인지 궁금하지만 JMS API가 있거나 적어도 쉽게 보이지 않는 것 같습니다.

낮은 대기 시간 제품에 JMS API가 있는지 또는 "고유 한"API가 JMS와 비슷한 지 알고 있습니다.

또는 MQ 튜닝을위한 포인터도 높이 평가 될 것입니다 ... :)

도움이 되었습니까?

해결책

분명히 낮은 대기 시간 메시징 제품은 귀하의 문제에 더 적합 할 것입니다. 저는 LBM이라는 낮은 대기 시간 메시징 제품을 사용하여 매우 유사한 작업을 수행하는 프로젝트를 진행하고 있습니다. 29 West. JMS API가 없으며, 저도가 낮은 공간의 대부분의 제품은 그렇지 않을 것이라고 생각합니다. 이러한 유형의 제품 (예 : 지속성, 선택기 등)과 함께 적합하지 않은 많은 기능이 있습니다. 우리는 메시징 제품의 상단에 우리 자신의 간단한 API를 작성하는 것이 상당히 쉬운 일이라는 것을 알았으며 나중에 제품을 바꾸는 유연성을 사용하고 JMS API의 일부 대량과 구두로부터 우리를 해방시킵니다.

고려해야 할 또 다른 옵션입니다 jgroups.

29west는 메시징 제품 라인에 JMS 지원을 추가했습니다.

다른 팁

"MQ 튜닝을위한 포인터"에 대해 SupportPacs 페이지 특정 권장 사항이있는 플랫폼 당 성능 평가가 있습니다. MP*라는 지원 PACS로 스크롤하여 적절한 버전과 플랫폼을 찾으십시오. 다양한 시나리오는 크고 작은 메시지로 테스트되며, 지속적이고 비가 부적절한 getter 및 퍼터 등에 대한 변형 등.

LLM 제품의 전 개발자로서 나는 그것이 그렇게하거나 적어도 그렇게했다고 말할 수 있습니다. 버전 2.6 용 공개적으로 사용 가능한 Infocenter에서 가져온 발췌문은 아래를 참조하십시오.

즉, 내가 기억하는 바에 따르면 MQ의 요점은 보장 된 배송. 이를위한 시간과 장소가 있지만 대기 시간과 대역폭 측면에서 비용이 발생합니다.

LLM은 근본적으로 다른 목적을 가지고 있습니다. 가지고 있습니다 신뢰할 수있는 배송: 그것이 배달하지 못한 경우, 당신이 단순히 그것이 전달하지 못한다는 것을 알게 될 것입니다. 이 메시지의 복구 가능성은 디스크에서 캐시 또는 리콜을 기꺼이 기꺼이 기꺼이 기꺼이 유지하고 있으며, 따라서 프로세스를 유지하는 동안 복구를 기다리는 데 얼마나 오래 기꺼이 회복 할 것인지에 의해서만 제한됩니다. 귀하의 경우, 회복에 신경 쓰지 않을 수 있습니다. LLM이 귀하에게 적합한 지 여부는 추측 할 수 없습니다. 내가 말할 수있는 것은 과거 개발자로서 그리고 나중에 클라이언트로서의 관점에서 볼 때, 나는 둘 사이에 유사하지 않다는 것을 알았고, 이런 종류의 응용 프로그램에 대한 LLM의 성능은 MQ를 물 밖으로 완전히 날려 버렸다. 나는 또한 Java/JMS 쪽을 크게 사용하지 않았으며 C/C ++에 초점을 맞췄으므로 소금 한 알로 가져 가십시오. 방금 그 일이 있었고 Google에서 어디를 볼지 알았습니다.

http://www-01.ibm.com/support/knowledgecenter/ssqpd3_2.6.com.ibm.wllm.doc/api/javadoc/messaging/com/ibm/llm/jms/package-summary.html

패키지 com.ibm.llm.jms 설명

LLM JMS 클라이언트에 대한 제공자 특정 공개 클래스를 구현하십시오.

JMS에 사용되는 대부분의 인터페이스는 공통 JMS 인터페이스에 의해 정의됩니다. 그러나 JMS 사양에는 JMS 클라이언트를 구성하는 데 필요한 클래스 및 인터페이스가 포함되어 있지 않습니다.

JMS 클래스 및 방법에 대한 정보는 JMS API 문서를 참조하십시오.

소개

LLM JMS 클라이언트는 LLM에 JMS (Java Message Service) 인터페이스를 제공합니다. JMS 인터페이스를 사용하면 LLM을 사용하면 다른 메시징 제공 업체와의 공통 인터페이스가 가능하며 개발자가 익숙한 인터페이스를 사용할 수 있도록 애플리케이션 개발 속도. JMS 인터페이스를 사용하면 설정을 중앙에서 관리 할 수있는 일반 메시징 기능을 사용하는 응용 프로그램에 가장 적합합니다. 여기에는 많은 기존 클라이언트 응용 프로그램이 포함됩니다. LLM JMS 클라이언트는 응용 프로그램이 LLM 특정 함수에 의존하거나 LLM과의 상당한 응용 프로그램 상호 작용이 필요한 경우에도 작동하지 않습니다. JMS 인터페이스를 사용하여 약간의 대기 시간이 추가되지만 여전히 매우 낮은 대기 시간과 높은 처리량 메시징을 제공합니다.

LLM JMS 클라이언트는 대부분의 LLM 클라이언트 기능을 지원하지만 계층 내에서 실행되는 서버 기능 또는로드 밸런스 송신기 인 서버 기능을 지원하지 않습니다.

LLM은 소비자 메시지에 직접 생산자를 수행하는 것을 기반으로합니다. JMS는 일반적으로 LLM JMS 클라이언트를 사용할 때 메시지 서버를 사용할 수없는 메시지 서버 및 JMS 기능을 사용하여 구현됩니다. 여기에는 모든 지점 간 메시징 (대기열)과 복구 기능이 포함됩니다. LLM JMS 클라이언트는 JSE 환경에서 실행되도록 설계되었으며 애플리케이션 서버 확장 또는 XA 트랜잭션을 지원하지 않습니다.

LLM JMS 클라이언트가 JMS를 구현하는 방법

LLM JMS 클라이언트는 외부에서 노출되지 않은 구현 클래스를 사용하여 각 기본 JMS 객체를 구현합니다. 이 객체의 서브 클래스는 동일한 구현 클래스를 사용하여 구현됩니다. 이것은 ConnectionFactory 및 대상의 두 개의 관리 객체 만 있다는 것을 의미합니다. LLM 정의 된 ConnectionFactory는 TopicConnectionFactory 및 QueeConnectionFactory로 시전 할 수 있으며 LLM 정의 대상을 주제 및 대기열로 캐스트 할 수 있습니다. 연결, 세션, 메시지 프로듀서 및 MessageConsumer도 마찬가지입니다. 한 공급자의 대상 개체는 동일한 공급자의 연결과 함께 사용해야합니다. 그러나 한 JMS 제공 업체가 생성 한 메시지를 다른 JMS 제공 업체에 보낼 수 있습니다. 다른 JMS 제공 업체가 작성한 메시지를 보내는 것은 LLM JMS 클라이언트가 작성한 메시지를 보내는 것만 큼 효율적이지는 않지만이 기능은 응용 프로그램이 한 공급자에서 다른 공급자로 쉽게 브리지 할 수 있도록 제공됩니다.

LLM JMS 클라이언트는 Point to Point 메시징 모델 (대기열)을 구현하지는 않지만 모든 JMS 객체를 만들 수 있습니다.

LLM JMS 클라이언트는 적어도 Java 5의 JVM이 필요합니다.

LLM JMS 클라이언트는 6 개의 메시지 유형 객체를 모두 정의합니다 (메시지, 바이트 메세지, MapMessage, ObjectMessage, StreamMessage 및 TextMessage). JMS에서 JMS로 메시지를 보낼 때 JMS 헤더는 메시지 유형을 나타냅니다. JMS 헤더가 누락 된 경우 (비 JMS 생산자로부터 메시지를 보낼 때 일반적으로) LLM JMS 클라이언트는 컨텐츠의 메시지 유형을 추론하려고합니다. 일반적으로 메시지는 바이트 메세지로 표시되지만 메시지가 UTF-8 BOM으로 시작하거나 XML 인 것으로 보이면 TextMessage로 해석됩니다. TextMessages는 UTF-8에서 코딩 된 것으로 가정합니다 ......

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top