2016-10-18 60 views
1

這個問題看起來很尷尬,肯定是由於缺乏知識。我無法找到關於程序化結構的資源。我知道發佈者將消息發佈到主題,並且訂閱者使用該主題的消息。但我不明白的是,它是如何以編程方式進行結構化的。發佈/訂閱模型,該主題的結構是什麼?

例如,在點對點模型中,您有一個消息隊列,可以在FIFO之後看作線性數據結構。雖然它沒有必要遵循先入先出的原則,但很可能。所以這給了我一些關於如何以編程方式構造隊列的重點。這個話題是如何構成的?

回答

1

主題通常實現爲樹結構,其中'/'是樹的根和不同級別的子節點。

下圖顯示瞭如何組織主題樹。主題樹有兩個子節點,一個用於SPORT,另一個用於NEWS,每個節點都有孩子。 enter image description here 這種主題樹組織方式允許在多個級別創建訂閱。例如,只對他/她最喜歡的足球俱樂部LIVERPOOL感興趣的用戶將以主題字符串訂閱/SPORT/FOOTBALL/LIVERPOOL。此訂閱者將只獲得與主題/SPORT/FOOTBALL/LIVERPOOL一起發佈的出版物。對於對世界新聞感興趣的其他人,可以訂閱主題/NEWS/WORLD。對於感興趣的人來說,一切只需訂閱/作爲主題。

爲某個主題創建訂閱時,JMS提供程序會創建一個名爲Subscription Queue的內容。 JMS提供程序將發佈放入此隊列。用戶然後從該隊列接收發布。