stomp failover作法

failover,在實務上的應用很重要。Apache ActiveMQ Failover Transport Reference中有說明。關於stomp failover作法,程式很簡單如下…詳細說明請見stomp文件-Failover
  1. $link = new Stomp("failover://(tcp://192.168.1.1:61613,tcp://192.168.1.2,:61613)?randomize=false")  
上述php code,我以pecl-stomp測試,卻會出現如下錯誤訊息
StompException , Invalid Broker URI scheme

參考Apache ActiveMQ ™ -- Failover Transport Reference的Configuration Syntax,改用其他的URI寫法,依舊會有錯誤…

最後去看pecl-stomp的source,才發現…pecl-stomp只允許tcp & ssl 。不允許以failover為首的URI。 :(

既然官方網站有提到failover機制和demo code,想必應該有此功能。下載官方 stomp client 1.0.0測試。果然,這版本有支援failover。

在使用官方 stomp client 1.0.0時,有件事情需注意。如果機器上已經有安裝pecl-stomp,需要先disable,否則在執行時會出現錯誤 - Cannot redeclare class StompFrame。

官方 stomp client 1.0.0有些參數可以調整。如timeout、retry次數等。有需要者可以視自己需要修改Stomp.php內的參數。

參考資料

  1. stomp 1.1和stomp 1.0的差異
  2. ActiveMQ參考書籍-ActiveMQ in Action
  3. php使用stomp操作ActiveMQ
  4. stomp進階說明-prefetchSize、ack header
  5. stomp failover作法

留言