2013-01-16 43 views
0

我會真正體會到一些幫助,利用消息中間件7.0和MQ 7.0發佈/訂閱MessageBroker + MQ基礎

我的流程應該接受沒有頭某個消息,過濾它開發一個簡單的pub/sub流基於 領域(過程中,如果值是「yes」) ,然後發佈體內所有的隊列,在消息

<pub> 
    <header> 
     <topics> 
      <topic> Topic1 </topic> 
      <topic> Topic2 </topic> 
     </topics> 

     <properties> 
      <property> 
          <publish>yes</publish> 
        </property>  
      </properties> 
    </header> 

    <body> 
     <a> 
     <b>The publication </b> 
     </a> 
    </body> 
</pub> 

的節點上市這是我的流程:

message flow

我在MQ中註冊了一個主題和一個訂閱,但我幾乎失去了接下來應該做的事情。 我使用RFHUtil來測試點對點應用程序 ,但不知道如何在開發發佈訂閱時使用它。

問題: 1.是否正確的使用只是一個簡單的隊列作爲發佈者(在MQ輸入我只設置「IN」,隊列,我在MQ) 2.如何註冊用戶/多這個流程中的用戶?訂閱點是什麼?

這只是一個學習任務。

歡迎任何幫助!

回答

2

對於一個正常的發佈 - 訂閱流,你可以有類似如下:

Sample fLOW

集,MQInput節點到你的輸入隊列的隊列名稱。我們將其命名爲「inputQ」。

現在消息已由MQInput節點從「inputQ」中讀取,並且已傳遞給計算節點。

在計算節點中,您需要將消息類型設置爲發佈並設置主題名稱,然後再將其傳遞到發佈節點。

您可以使用以下代碼一樣:

SET OutputRoot.MQRFH2.psc.Command = 'Publish'; 
SET OutputRoot.MQRFH2.psc.Topic = 'YourTopicString'; 

「我怎麼在這個流程註冊用戶/多用戶?」

我假設你的問題是「如何發佈消息來自同一流程的不同主題「。

現在假設您有多個主題要從同一個流發佈。你不能一次完成。一條消息可以有一個主題。

但是,你可以按照以下實現它(假設你有3個主題):

SET OutputRoot.MQRFH2.psc.Command = 'Publish'; 
SET OutputRoot.MQRFH2.psc.Topic = 'Topic1'; 
PROPAGATE TO TERMINAL 'out' DELETE NONE; 
SET OutputRoot.MQRFH2.psc.Topic = 'Topic2'; 
PROPAGATE TO TERMINAL 'out' DELETE NONE; 
SET OutputRoot.MQRFH2.psc.Topic = 'Topic3'; 
PROPAGATE TO TERMINAL 'out' DELETE NONE; 
RETURN FALSE; 

但是,如果你的要求是出版單一的主題,但多個隊列應該把它撿起來,那麼它的簡單。

您只需要爲您的主題創建所有這些隊列的訂閱。

+0

非常感謝!現在全部清楚 – tania

+0

您是否可以在沒有MQInput的情況下發布消息?像:APIRest - > ComputeNode - >出版 – Bruno

+0

@布魯諾是的,當然。只需確保在發佈之前創建了有效的MQ頭。 – nitgeek