本文Rocket MQ 入门使用教程是在windows 10 环境下的
地址:http://rocketmq.apache.org/release_notes/release-notes-4.3.0/ ,选择Binary进行下载。
1、解压已下载的压缩包,如下图所示。
2、配置环境变量ROCKETMQ_HOME,如下图所示。
3、修改配置文件,如下图所示。
进入RocketMQ安装目录下的conf目录,里面有一个broker.conf配置文件。在文件末尾添加两行。
在MQ安装目录的bin目录下进入CMD命令行,执行命令(或者双击mqnamesrv.cmd),启动nameserver,成功后会弹出提示框,不要关闭!
# 执行命令
start mqnamesrv.cmd
在bin目录下cmd进入命令行模式,执行命令,启动broker,成功后不要关闭!
start mqbroker.cmd -n 127.0.0.1:9876 -c ../conf/broker.conf autoCreateTopicEnable=true
想配置一下RocketMQ的web管理页面,发现网上的资料都是之前版本的说明,导致无法成功配置。
发现https://github.com/apache/rocketmq-externals ,这个git项目上并没有找到rocketmq-console这个目录。
原来是转移到 rocketmq-dashboard 仓库了。
rocketmq-dashboard仓库:https://github.com/apache/rocketmq-dashboard
这里有一些坑,编译打包时可能会报错。需要把一些插件注释掉!
<artifactId>maven-compiler-pluginartifactId>
<artifactId>maven-checkstyle-pluginartifactId>
<artifactId>frontend-maven-pluginartifactId>
<artifactId>maven-antrun-pluginartifactId>
注释掉以上plugin后,就可以执行下面命令了。
mvn clean package -Dmaven.test.skip=true
执行命令:
java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar
说明:在浏览器中输入 http://127.0.0.1:8888/#/ ,即可查看。
<dependency>
<groupId>org.apache.rocketmqgroupId>
<artifactId>rocketmq-clientartifactId>
<version>4.4.0version>
dependency>
发送消息步骤:
代码如下:
package com.linhuaming.rocketmq.demo.producer;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;
import java.io.UnsupportedEncodingException;
/**
* 消息生产者
*/
public class Producer {
public static void main(String[] args) {
// 1.创建一个生产者对象,并且指定一个生产者组
DefaultMQProducer producer = new DefaultMQProducer("xiaolin-producer");
// 2.指定mq服务器地址
producer.setNamesrvAddr("127.0.0.1:9876");
try {
// 3.启动生产者
producer.start();
// 4.创建一个消息,参数分别为:主题、标签、消息体
Message message = new Message("topic1","tag1","你好,我是消息2".getBytes("utf-8"));
// 5.发送消息
SendResult send = producer.send(message);
System.out.printf("%s%n", send);
// 6.关闭资源
// producer.shutdown();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MQClientException e) {
e.printStackTrace();
} catch (MQBrokerException e) {
e.printStackTrace();
} catch (RemotingException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
接收消息步骤:
package com.linhuaming.rocketmq.demo.producer;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;
import java.io.UnsupportedEncodingException;
/**
* 消息生产者
*/
public class Producer {
public static void main(String[] args) {
// 1.创建一个生产者对象,并且指定一个生产者组
DefaultMQProducer producer = new DefaultMQProducer("xiaolin-producer");
// 2.指定mq服务器地址
producer.setNamesrvAddr("127.0.0.1:9876");
try {
// 3.启动生产者
producer.start();
for(int i=0; i<10000000; i++){
int num = i + 1;
// 4.创建一个消息,参数分别为:主题、标签、消息体
String sendContent = "你好,我是消息"+num;
Message message = new Message("topic1","tag1",sendContent.getBytes("utf-8"));
// 5.发送消息
SendResult send = producer.send(message);
System.out.printf("第"+num+"条消息:%s%n", send);
}
// 6.关闭资源
producer.shutdown();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MQClientException e) {
e.printStackTrace();
} catch (MQBrokerException e) {
e.printStackTrace();
} catch (RemotingException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} catch (MQBrokerException e) {
e.printStackTrace();
} catch (RemotingException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}