토픽은 publish/subscribe 시스템에 publish되는 데이터의 성질을 기술하는 문자열.
토픽은 publish/subscribe 시스템에서 메시지 전달이 정상적으로 수행되는 데 필수적입니다. Publisher는 각 메시지에 특정 목적지 주소를 포함시키지 않고 메시지에 토픽을 지정합니다. 메시지 브로커는 토픽을 해당 토픽을 subscribe된 클라이언트(subscriber) 목록과 맞춰보고, 해당 메시지를 각각의 해당 클라이언트로 전달합니다.
Publisher는 메시지에 지정된 토픽을 주의 깊게 선택하여 publication을 수신할 수 있는 subscriber를 제어할 수 있음을 유의하십시오.
시스템 관리자는 Workbench를 사용하여 토픽을 정의할 수 있습니다. 그러나 publisher가 토픽을 사용하기 전에 메시지 토픽을 정의하지 않아도 됩니다. 토픽은 처음 publication에 지정될 때 정의될 수도 있습니다.
하나의 publication에 대해 둘 이상의 토픽을 지정할 수 있습니다.
공백을 포함하여 유니코드 문자 세트의 모든 문자가 토픽 문자열이 될 수 있습니다. 그러나, 특수한 의미를 가지는 세 개의 문자가 있습니다. 이러한 문자("/", "#", "+")는 토픽의 특수 문자에서 설명합니다.
널(null) 문자로 인해 오류가 발생하지 않아도 토픽 문자열에서 널(null) 문자를 사용하지 않도록 하십시오.
정의된 각 토픽은 토픽 트리에서 요소 또는 노드가 됩니다. 토픽 트리는 빈 상태로 시작될 수도 있고, 시스템 관리자가 Workbench를 사용하여 토픽을 정의할 수 있습니다. Workbench를 사용하거나 publication에서 처음으로 토픽을 지정하여 새 토픽을 정의할 수 있습니다.
토픽 트리를 평면적 선형 구조로 구성할 수도 있지만, 토픽 트리를 하나 이상의 루트 토픽이 있는 계층 구조로 빌드하는 것이 더 좋습니다.
그림의 각 문자열은 토픽 트리의 노드를 나타냅니다. 완전한 노드 이름은 하나 이상의 토픽 트리 레벨의 노드를 통합하여 만들어집니다. 레벨은 "/" 문자로 구분됩니다. 완전히 지정된 토픽 이름의 형식은 "root/level2/level3"입니다.
토픽 이름과 토픽 트리를 설계할 때, 메시지 브로커는 토픽 이름 자체를 해석하거나 토픽 이름 자체로부터 의미를 도출하지 않는다는 점을 유의하십시오. 메시지 브로커는 토픽을 subscribe된 클라이언트로 관련 메시지를 송신할 때만 토픽 이름을 사용합니다.