一、安装参考https://www.liangzl.com/get-article-detail-11057.html
下载 和安装步骤 https://www.jianshu.com/p/4a275e779afa
1、下载
1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/
1.2选择‘Binary’进行下载
1.3解压已下载工程
- 配置
2.1 系统环境变量配置
变量名:ROCKETMQ_HOME
变量值:MQ解压路径\MQ文件夹名
2.2重启服务器
3. 启动
3.1 启动NAMESERVER Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。
3.2 启动BROKER Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’,启动BROKER。成功后会弹出提示框,此框勿关闭。
采坑!!!!!!!autoCreateTopicEnable=true不一定会生效,在之后的producer和customer里指定topic时会不行,,,首次搭建可以在之后的监控台手动创建
踩坑!!!!默认的配置很大,如果机器内存不够,则会启动不成功。因为仅仅时搭建测试,我全部都改成m级的。
假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。打开runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。保存并重新执行start语句。
这里没有任何文字,应该启动好了,如果不放心,可以去broker的log里查看,C:\Users\本机\logs\rocketmqlogs
有这样的ok就算时启动成功了。
- 安装监控插件。
4.1 git clone https://github.com/apache/rocketmq-externals.git 解压
4.2修改配置文件
cmd 进入插件文件夹 D:\workapp\RocketMQ\rocketmq-externals\rocketmq-console
执行maven打包命令:mvn clean package -Dmaven.test.skip=true
打包完成后 进入target文件夹 执行 java -jar rocketmq-console-ng-1.0.1.jar(jar包版本号因人而异)。
看到spring的图案,没有报错,就启动成功了。
访问就能看到如下界面。
如果nameservaddrlist下有地址,就代表成功。
5、producer 测试
public class ProducerTestController {
//分组名必须保证全局一致
public static final String PRODUCE_GROUP_NAME="DefalultCluster";//在控制台中找集群名
//MQ的运行地址
public static final String MQ_IP="127.0.0.1:9876";
@RequestMapping("/producermessage")
@ResponseBody
public Map<String,Object> produceMessage() throws Exception{
//1. 创建生产者连接(类似于JDBC中的Connection),要传入MQ的分组名
DefaultMQProducer producer =new DefaultMQProducer(PRODUCE_GROUP_NAME);
//2. 设置MQ的运行地址
producer.setNamesrvAddr(MQ_IP);
//3. 开启连接
producer.start();
//4. 构造消息(重载方法较多,此处选择topic, tag, message的三参数方法)
Message message = new Message("test_topic","test_tag",("test_message_from_producer").getBytes());//topic 要手动创建,名字在控制台中要看的到
//5. 发送消息,该方法会返回一个发送结果的对象
SendResult result= producer.send(message);
System.out.println(result.getSendStatus());
//6. 关闭链接
// producer.shutdown();
Map<String,Object> map =new HashMap<>();
map.put("消息结果","test");
return map;
}
topic手动创建或者把允许自动创建topic配置在配置文件中。
最后访问,
说明搭建成功!