스트림은 WebSphere MQ Publish/Subscribe 응용프로그램이 사용하는 토픽 분할 방법입니다. 관련 토픽 세트는 그룹으로 묶여서 개별 스트림으로 들어갑니다.
스트림을 사용하여 서로 다른 보안 컨트롤이 서로 다른 그룹의 토픽에 적용될 수 있으며 브로커의 publish 워크로드가 더 잘 조절됩니다.
WebSphere Message Broker는 응용프로그램이 이 두 개념을 모두 실현하도록 하는 다른 방법을 제공하지만, MQRFH 응용프로그램과의 호환성을 지원하기 위해 스트림 개념이 지원됩니다.
WebSphere Message Broker는 MQRFH 클라이언트 응용프로그램이 MQPSStreamName 명령 매개변수를 subscription 및 publication에 지정하도록 합니다. 그러나, 스트림 이름은 WebSphere MQ Publish/Subscribe의 파티션 특정을 보존하기 위해 토픽을 수정하는 데만 사용됩니다.
메시지와 연관된 스트림 이름이 SYSTEM.BROKER.DEFAULT.STREAM이 아닌 경우, 메시지 내에 언급된 토픽의 접두부에 문자열 "$SYS/STREAM/<streamname>/"이 붙어 있는 것처럼 메시지가 처리됩니다. 예를 들면, StreamX의 스트림 이름을 지정하는 Topic1으로의 subscription은 토픽 "$SYS/STREAM/StreamX/Topic1"으로 subscription이 이루어진 것처럼 처리됩니다.
MQRFH2 publish 및 subscribe 응용프로그램은 자체적으로 WebSphere Message Broker 브로커로 송신하는 메시지에 스트림 이름을 지정할 수 없지만 시스템 관련 토픽을 대상으로 할 수도 있습니다. 이를 위해서는 토픽에 적절한 스트림 접두부를 붙여야 합니다.
예를 들면, MQRFH2 subscriber는 토픽 "$SYS/STREAM/STOCK.STREAM/IBM/Latest"를 지정해야만 WebSphere MQ Publish/Subscribe 네트워크 내의 스트림 STOCK.STREAM에서 publish되는 토픽 "IBM/Latest"에 subscribe할 수 있습니다.
WebSphere MQ Publish/Subscribe은 스트림 관련 publication이 스트림과 동일한 이름을 가진 큐에만 송신되도록 합니다. 그러나 WebSphere Message Broker은 publish 중인 클라이언트가 메시지 플로우의 모든 입력 큐에 publication을 송신할 수 있도록 합니다. publication 내에서 스트림 이름 매개변수를 지정하도록 명시적으로 선택한 MQRFH 응용프로그램은 WebSphere Message Broker 브로커가 처리하는 어떤 publication 큐로도 해당 publication을 송신할 수 있습니다. 큐의 이름은 스트림의 이름과 같을 필요가 없습니다. 그러나, 이 작동이 publication의 수신 순서에 영향을 줄 수 있습니다. 이것이 응용프로그램에 중요한지 여부를 고려하십시오.
각 Publication 노드에는 함축적 스트림 이름 지정 등록 정보가 있으며 디폴트 값은 true입니다. 이 디폴트 옵션은 MQRFH publication이 명시적 스트림 이름을 포함하지 않았을 때 WebSphere MQ Publish/Subscribe의 작동과 같은 작동이 발생하게 됩니다. 등록 정보가 false이고 publication이 명시적 스트림 이름을 포함하지 않은 경우, SYSTEM.BROKER.DEFAULT.STREAM으로 간주됩니다.
메시지를 publish하는 MQRFH 및 MQRFH2 클라이언트 응용프로그램 모두가 사용할 수 있는 옵션이 다음 표에 있습니다. 이 표에서는 디폴트 스트림 및 예제 스트림 이름 StreamX에서 사용할 수 있는 옵션을 보여줍니다.
MQRFH publisher | MQRFH2 publisher | |||
---|---|---|---|---|
디폴트 스트림 | StreamX | 디폴트 스트림 | StreamX | |
MQRFH subscriber | S1,P1 | S2,P2 | S1,P3 | S2,P4 |
MQRFH2 subscriber | S3,P1 | S4,P2 | S3,P3 | S4,P4 |
WebSphere MQ Publish/Subscribe 네트워크에서, 브로커는 동일한 스트림 세트를 이웃으로 지원할 필요가 없습니다. 브로커가 이웃 브로커 중 하나가 지원하는 스트림을 지원하지 않을 경우, 해당 브로커의 클라이언트는 해당 스트림과 연관된 publication을 사용할 수 없습니다.
WebSphere Message Broker 브로커가 네트워크에 조인하면, 이웃 WebSphere MQ Publish/Subscribe 브로커의 모든 스트림을 지원합니다. 즉 WebSphere Message Broker 브로커의 클라이언트는 WebSphere MQ Publish/Subscribe 이웃이 지원하는 모든 스트림의 publication을 대상으로 지정할 수 있습니다.
그러나, 이러한 publication이 사용 가능하게 하려면 스트림 큐를 정의하고 해당 큐를 지원하는 메시지 플로우를 정의하여 WebSphere Message Broker 브로커에 전개해야 합니다.
이기종 네트워크
WebSphere MQ Publish/Subscribe 네트워크의 모든 브로커는 항상 디폴트 스트림 큐 SYSTEM.BROKER.DEFAULT.STREAM을 지원하며 이기종 네트워크의 모든 WebSphere Message Broker 브로커에서 정의되어야 합니다. 각 브로커에서 이 큐를 처리하려면 메시지 플로우를 정의하고 전개해야 합니다.
WebSphere Message Broker 브로커가 WebSphere MQ Publish/Subscribe 네트워크에 통합되었으며 공통 스트림을 공유하는 둘 이상의 WebSphere MQ Publish/Subscribe 브로커를 링크하는 경우, 공통 스트림 큐를 정의하고 해당 큐를 처리하는 메시지 플로우를 정의하여 WebSphere Message Broker 브로커에 전개해야 합니다.
예를 들면, WebSphere Message Broker 브로커 NEWBROKER는 BULLETIN.STREAM에 대해 정의된 스트림 큐를 가지고 있어야 합니다. 또한 해당 큐에 publication 서비스를 제공하기 위한 메시지 플로우가 정의 및 전개되어야 합니다.