1. 程式人生 > 實用技巧 >淺談PHP5.6 與 PHP7.0 區別

淺談PHP5.6 與 PHP7.0 區別

技術標籤:原始碼探究rocketmqmqjava

目錄

下載原始碼

下載原始碼,github頁面選擇(rocketmq-all-4.7.1)版本壓縮包,https://github.com/apache/rocketmq/tags

匯入IDEA

  1. 使用IDEA開啟工程後,修改pom.xml檔案中無關內容
    1. 去除maven-gpg-plugin、maven-failsafe-plugin外掛
  2. 使用IDEA的maven編譯整個專案,(clean compile install),記得Skip Tests

新建資料夾,存放配置、日誌、訊息體等內容

  1. 新建一個資料夾,如1local_ROCKETMQ_HOME
  2. 1local_ROCKETMQ_HOME路徑下建立3個資料夾(conf,logs,store)
  3. 將工程中distribution/conf目錄下的3個檔案(logback_namesrv.xml,logback_broker.xml,broker.conf),複製到前面建立的conf目錄下
  4. 修改broker.conf,增加【附錄1】中的配置,注意替換路徑
  5. 修改logback_namesrv.xml和logback_broker.xml中的${user.home}引數,替換為1local_ROCKETMQ_HOME絕對路徑
  6. 修改org.apache.rocketmq.common.namesrv.NamesrvConfig,rocketmqHome變數,原因是動態獲取配置,現改為1local_ROCKETMQ_HOME絕對路徑
  7. 修改org.apache.rocketmq.common.BrokerConfig變數,原因是動態獲取配置,現改為1local_ROCKETMQ_HOME絕對路徑

應用啟動

  1. NameServer啟動
    1. NamesrvStartup main方法啟動即可
    2. 控制檯列印如下日誌代表啟動成功(The Name Server boot success. serializeType=JSON)
    3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到詳細日誌
  2. BrokerStartup啟動
    1. BrokerStartup main方法啟動即可(啟動時需指定conf檔案 -c D:\opensource_code\rocketmq\1local_ROCKETMQ_HOME\conf\broker.conf)
    2. 控制檯列印如下日誌代表啟動成功(The broker[broker-a, 你的ip:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876)
    3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到詳細日誌

測試訊息的生產和消費

  1. 訊息傳送,找到類org.apache.rocketmq.example.quickstart.Producer
    1. 增加程式碼,指定NameSrv地址, producer.setNamesrvAddr("127.0.0.1:9876");
    2. 啟動main方法,可見日誌輸出SendResult
    3. 在store路徑下,可見已生成TopicTest相關的物理檔案
  2. 訊息消費,找到類org.apache.rocketmq.example.quickstart.Consumer
    1. 增加程式碼,指定NameSrv地址, consumer.setNamesrvAddr("127.0.0.1:9876");
    2. 啟動main方法,可見日誌輸出消費日誌,如ConsumeMessageThread_19 Receive New Messages: xxx....

附錄1

#nameServer 地址 分號分割
namesrvAddr=127.0.0.1:9876
# 儲存路徑
storePathRootDir=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store
#commitLog 儲存路徑
storePathCommitLog=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\commitlog
# 消費佇列儲存路徑
storePathConsumeQueue=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\consumequeue
# 訊息索引|儲存路徑
storePathindex=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\index
#checkpoint 檔案儲存路徑
storeCheckpoint=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\checkpoint
#abort 檔案儲存路徑
abortFile=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\abort