qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          MetaQ集群安裝測試

            1,ZooKeeper集群安裝,自己搜索安裝
            2,下載https://github.com/killme2008/Metamorphosis/tree/metamorphosis-all-1.4.6.2,如果不想自己編譯可以直接下載http://fnil.net/downloads/index.html,我這里選擇自己編譯,主要是以后如果出現問題自己可以修改其源碼,重新編譯
            3,maven編譯,maven環境自己搜索配置好,下載all項目后需要編譯其子項目metamorphosis-server-wrapper。dos環境進入其目錄下mvn eclipse:eclipse,完成后導入到eclipse,用eclipse插件編譯?;蛘咧苯觗os該目錄下執行mvn clean install -Dmaven.test.skip=true。完成后target目錄下生產其jar包;
            可以在工程創建lib文件夾,輸入以下命令:mvn dependency:copy-dependencies -DoutputDirectory=lib (不加DoutputDirectory會默認輸出到targed/dependency下)。再把install的jar包也copy到lib下。
            4,完成編譯后上傳到服務器
            需要修改conf/server.ini文件
          [system]brokerId=2
          numPartitions=1
          serverPort=8123
          ashboardHttpPort=8120
          unflushThreshold=0
          unflushInterval=10000
          maxSegmentSize=1073741824
          maxTransferSize=1048576
          deletePolicy=delete,168
          deleteWhen=0 0 6,18 * * ?
          flushTxLogAtCommit=1
          stat=true
          dataPath=/data1/metaq/data
          dataLogPath=/data1/metaq/log
          [zookeeper]
          zk.zkConnect=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
          zk.zkSessionTimeoutMs=30000
          zk.zkConnectionTimeoutMs=30000
          zk.zkSyncTimeMs=5000
          ;; Topics section
          [topic=test]
          [topic=meta-test]
            集群的話需要修改上面標紅部分,brokerId保證每個服務器節點上不一樣就行
            dataPath,dataLogPath如果自己制定,需要每臺服務器mkdir
            分發到個節點,在每臺節點的bin下都執行metaServer.sh start
            需要停止時執行metaServer.sh stop
            查看狀態sh metaServer.sh  status


            5,應用例子
          package com.test.metaq;
          import java.util.concurrent.Executor;
          import com.taobao.metamorphosis.Message;
          import com.taobao.metamorphosis.client.MessageSessionFactory;
          import com.taobao.metamorphosis.client.MetaClientConfig;
          import com.taobao.metamorphosis.client.MetaMessageSessionFactory;
          import com.taobao.metamorphosis.client.consumer.ConsumerConfig;
          import com.taobao.metamorphosis.client.consumer.MessageConsumer;
          import com.taobao.metamorphosis.client.consumer.MessageListener;
          import com.taobao.metamorphosis.exception.MetaClientException;
          import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
          public class AsyncConsum {
          public static void main(String[] args) {
          final MetaClientConfig metaClientConfig = new MetaClientConfig();
          final ZKConfig zkConfig = new ZKConfig();
          zkConfig.zkConnect = "192.168.1.1:2181";
          metaClientConfig.setZkConfig(zkConfig);
          MessageSessionFactory sessionFactory = null;
          try {
          sessionFactory = new MetaMessageSessionFactory(metaClientConfig);
          } catch (MetaClientException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          final String topic = "test";
          final String group = "meta-example";
          MessageConsumer consumer = sessionFactory.createConsumer(new ConsumerConfig(group));
          try {
          consumer.subscribe(topic, 1024 * 1024, new MessageListener() {
          public void recieveMessages(Message message) {
          System.out.println("Receive message " + new String(message.getData()));
          }
          public Executor getExecutor() {
          return null;
          }
          });
          consumer.completeSubscribe();
          } catch (MetaClientException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          }
          }
          package com.test.metaq;
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import com.taobao.metamorphosis.Message;
          import com.taobao.metamorphosis.client.MessageSessionFactory;
          import com.taobao.metamorphosis.client.MetaClientConfig;
          import com.taobao.metamorphosis.client.MetaMessageSessionFactory;
          import com.taobao.metamorphosis.client.producer.MessageProducer;
          import com.taobao.metamorphosis.client.producer.SendResult;
          import com.taobao.metamorphosis.exception.MetaClientException;
          import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
          public class Products {
          public static void main(String[] args) {
          final MetaClientConfig metaClientConfig = new MetaClientConfig();
          final ZKConfig zkConfig = new ZKConfig();
          zkConfig.zkConnect = "192.168.1.1:2181";
          metaClientConfig.setZkConfig(zkConfig);
          MessageSessionFactory sessionFactory = null;
          try {
          sessionFactory = new MetaMessageSessionFactory(metaClientConfig);
          } catch (MetaClientException e) {
          e.printStackTrace();
          }
          MessageProducer producer = sessionFactory.createProducer();
          final String topic = "test";
          producer.publish(topic);
          BufferedReader reader = new BufferedReader(new InputStreamReader(
          System.in));
          String line = "qiujinyong";
          try {
          while ((line = reader.readLine()) != null) {
          SendResult sendResult = producer.sendMessage(new Message(topic,
          line.getBytes()));
          if (!sendResult.isSuccess()) {
          System.err.println("Send message failed,error message:"
          + sendResult.getErrorMessage());
          } else {
          System.out.println("Send message successfully,sent to "
          + sendResult.getPartition());
          }
          }
          } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          } catch (MetaClientException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          }
          }
            打包test.jar后,傳服務器上 java -cp test.jar com.test.metaq.Products 命令行輸入message
            打包test.jar后,傳服務器上 java -cp test.jar com.test.metaq.AsyncConsum 命令行會接收到message

          posted on 2014-04-24 10:18 順其自然EVO 閱讀(237) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 镇远县| 余庆县| 浦北县| 阿城市| 东乌| 新蔡县| 乃东县| 阿鲁科尔沁旗| 岳西县| 赣榆县| 太谷县| 南宫市| 霍城县| 仲巴县| 蕉岭县| 桃源县| 平度市| 柳河县| 潞城市| 永平县| 张家界市| 乐昌市| 鄂尔多斯市| 顺义区| 永兴县| 五台县| 安龙县| 铁岭市| 绥阳县| 满洲里市| 纳雍县| 旅游| 桂平市| 禄劝| 濮阳县| 个旧市| 阿合奇县| 峡江县| 栖霞市| 仙游县| 仙居县|