【翻译】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里的内容

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