如何開始--metaq

如何開始--metaq

轉自:http://wbj0110.iteye.com/blog/1956635

下載服務器

Google Code或者我的個人主頁選擇最新版本的服務器(目前是1.4.6.1)並下載到本地,假設下載後的文件在folder目錄,執行下列命令解壓縮文件:

cd folder
tar zxvf   metaq-server-1.4.6.2.tar.gz 

解壓縮文件,解壓後目錄結構大概爲:

taobao
    metamorphosis-server-wrapper
         bin
            env.bat                
            env.sh                 
            log4j.properties       
            metaServer.bat         
            metaServer.sh          
            tools_log4j.properties
         logs
         conf
            server.ini
            ......
         lib
            ......
         provided
            ......

啓動腳本放在bin目錄,主要的腳本是metaServer.sh,日誌在logs目錄,而配置文件主要是conf目錄下server.ini,lib存放所有的依賴jar包,1.4.6新增加的provided目錄用於存放服務端的消息過濾器實現打包後的jar包以及用到的第三方依賴。

配置Broker

默認server.ini提供了一個topic——test用於測試,你可以添加自己定義的topic:

[topic=mytopic]                                                                                                                                                                              
;是否啓用統計                                                                                                                                                                             
stat=true                                                                                                                                                                                    
;這個topic指定分區數目,如果沒有設置,則使用系統設置                                                                                                                                          
numPartitions=10                                                                                                                                                                                                                                                                                                                                                    
;刪除策略的執行時間,cron表達式                                                                                                                                                                
deleteWhen=0 0 6,18 * * ? 

大多數system參數都可以topic參數所覆蓋。

啓動和關閉服務器

確保你的機器上安裝了JDK並正確設置JAVA_HOME和PATH變量,啓動服務器:

bin/metaServer.sh start local

關閉服務器:

bin/metaServer.sh stop

在windows上,雙擊執行"bin/metaServer.bat"即可(windows不支持local模式啓動,需配置zookeeper,見下文的zookeeper配置一節)。

修改JAVA_HOME,JMX等變量,請修改bin/env.sh(for linux)或者bin/env.bat(for windows)。

更多metaServer.sh支持命令請使用help:

 bin/metaServer.sh help
=>
  Usage: metaServer.sh {start|status|stop|restart|reload|stats|open-partitions|close-partitions|move-partitions|delete-partitions|query}
  ......

驗證服務器正常運行

除了通過觀察日誌logs/metaServer.log外,你還可以通過stats命令來觀察服務器運行狀況。

 bin/metaServer.sh stats
 =>
   STATS
   pid 7244
   broker_id 0
   port 8123
   uptime 2057
   version 1.4.2
   curr_connections 1
   threads 35
   cmd_put 0
   cmd_get 0
   cmd_offset 0
   tx_begin 0
   tx_xa_begin 0
   tx_commit 0
   tx_rollback 0
   get_miss 0
   put_failed 0
   total_messages 0
   topics 2
   config_checksum 718659887
   END

你也可以telnet到默認的8123端口執行stats命令查看。

Web管理平臺

1.4.5新增Web管理平臺,通過瀏覽器訪問你服務器運行的8120端口(默認),例如本機運行就是http://localhost:8120

集羣模式配置

Local模式

上文提到的啓動方式是以本地模式也就是單機模式啓動,它將啓動一個內置的zookeeper,並將broker註冊到該zookeeper。這對於單機應用或者測試開發是最便捷方式的。

但是MetaQ是作爲分佈式軟件設計的,更通常作爲一個集羣提供服務。MetaQ的集羣管理是利用zookeeper實現的,因此首先需要配置zookeeper。 一個MetaQ集羣必須使用同一個zookeeper集羣。

配置zookeeper

Metamorphosis使用zookeeper發佈和訂閱服務,並默認使用zookeeper存儲消費者offset,因此,你需要首先安裝一個zookeeper到某臺機器上,或者使用某個現有的zk集羣,安裝zookeeper請參考zookeeper文檔。

假設你在本機安裝並啓動了一個zookeeper,端口在默認的2181,請修改conf/server.ini文件,保證zookeeper地址正確:

 ;zk的服務器列表 
 zk.zkConnect=localhost:2181                                                                                                                                                                       
 ;zk心跳超時,單位毫秒,默認30秒                                                                                                                                                                     
 zk.zkSessionTimeoutMs=30000                                                                                                                                                                 
 ;zk連接超時時間,單位毫秒,默認30秒                                                                                                                                                       
 zk.zkConnectionTimeoutMs=30000                                                                                                                                                   
 ;zk數據同步時間,單位毫秒,默認5秒                                                                                                                                                
 zk.zkSyncTimeMs=5000    

其他zk參數請酌情設置。其他重要參數還包括dataPath和numPartitions,分別用於指定默認的數據存儲路徑,以及默認topic的分區數目。具體參數信息請看conf/server_sample.ini示範文件。

當使用內置的zookeeper時,zookeeper數據是存放在/temp目錄下。可以通過zk.server.snapDirectory和zk.server.logDirectory參數來設置。另外還可以通過zk.server.max.connections來設置最大連接數,默認是4096。

啓動服務器

假設你準備建立一個兩臺broker組成的MetaQ集羣提供消息服務,那麼通常你需要兩臺機器來運行MetaQ。但是這裏爲了簡單測試,以單機運行集羣模式爲例子。

首先,按照上文的提示,正常啓用Local模式後,假設爲broker1,請拷貝一份MetaQ到不同目錄,假設爲broker2:

  • server.ini需要修改三個參數:serverPort,dataPathdashboardHttpPort,分別對應服務器端口,數據存儲路徑和Web管理平臺HTTP端口號,將broker2的這兩個參數修改爲不同值,其他設置保持不變。
  • bin/env.sh需要修改export JMX_PORT=9123,改爲不同的端口,這是JMX端口。

然後,停止local模式啓動的broker1, 並重新以集羣模式啓動:

metaServer.sh stop
metaServer.sh start

進入broker2的bin目錄,啓動broker2:

metaServer.sh start

這樣即組成兩個broker的MetaQ集羣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章