【翻譯】rocketMq 入門【一】

該文章的目的:

1.翻譯rocketMq 官方文檔裏的關鍵部分。

2.記錄官方文檔學習過程中遇到的問題

一、快速入門:http://rocketmq.apache.org/docs/quick-start/

mac 系統:官方文檔的操作步驟如下:

$ unzip rocketmq-all-4.7.0-source-release.zip
$ cd rocketmq-all-4.7.0/
$ mvn -Prelease-all -DskipTests clean install -U
$ cd distribution/target/rocketmq-4.7.0/rocketmq-4.7.0
$ nohup sh bin/mqnamesrv &
$ nohup sh bin/mqbroker -n localhost:9876 &
$ export NAMESRV_ADDR=localhost:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

遇到問題:

producer發送消息失敗

原因可以參考該博客:https://segmentfault.com/q/1010000016390309

解決辦法:指定brocker的IP地址後重新啓動

# 關閉brocker
$ sh bin/mqshutdown broker
$ echo 'brokerIP1 = 127.0.0.1' >> conf/broker.conf
$ nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

此時producer發送消息成功

todo疑問:

1.brocker 爲什麼必須和nameserver地址保持一致?如果不保持一致,我們需要配置什麼纔可以訪問通

2.nameserver 也沒有指定配置爲什麼就是默認的localhost,brocker就是其他的IP

二、簡單發送消息:http://rocketmq.apache.org/docs/simple-example/

展示了三種發送消息方式:

同步:可靠的同步傳輸有廣泛的應用場景,例如:重要的消息通知,SMS通知,SMS營銷系統等

異步:異步傳輸通常用在響應時間敏感的業務場景

單向:單向傳輸用在對可靠性要求不高的場景,比如:日誌收集

三、有序消息:http://rocketmq.apache.org/docs/order-example/

RocketMq採用有序性規則是先進先出;

示例演示了全局和分區順序消息的發送/接收。

問題:

我運行代碼有問題,consumer 和producer 分別需要設置nameaddr

        DefaultMQProducer producer = new DefaultMQProducer("example_group_name");
        // 新增    
        producer.setNamesrvAddr("localhost:9876");

        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("example_group_name");
        // 新增
        consumer.setNamesrvAddr("localhost:9876");

然後運行成功

四、廣播消息:http://rocketmq.apache.org/docs/broadcast-example/

廣播消息是給一個topic的所有訂閱者發送消息,如果你想讓一個topic的所有訂閱者都收到消息,那麼廣播是一個不錯的選擇

問題:

1.本機單點暫時還沒有測試,需要考慮一下如何配置多個consumer;

2.爲什麼是在消費者接收時設置模式,那如果一個消費者設置廣播模式,另外一個非廣播模式呢?

五、定時消息: http://rocketmq.apache.org/docs/schedule-example/

定時消息和普通消息的區別是:他們等到指定時間之後纔會發送。

問題:

1.運行代碼同樣需要參考三,設置addr;

2.我運行的代碼沒有達到效果,delayLevel=3是什麼意思?

六、批量發送:http://rocketmq.apache.org/docs/batch-example/

爲什麼批量?

批量發送消息可以改善短小消息的投遞性能。

使用限制:

同一批投遞的消息應該擁有:相同的topic,相同的等待確認,不支持定時消息;

此外,一個批次的消息大小不應該超過1MB

如何使用批量:

如果你同一時刻發送的消息大小不超過1MB,可以簡單的使用batch,參考代碼

當你發送大消息或者你不確認是否超過大小限制時,複雜度纔會增加 。這個時候你最好將消息拆分一下,參考代碼如下:

 

很不幸,官方文檔剩下內容看完了,但是並沒有得到更多的信息,發現https://github.com/apache/rocketmq/wiki/RIP-1-MQTT-Bridge 這個內容或許更詳細,後續文檔系列翻譯wiki裏的內容

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