持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情
准备工作
环境:centOS7.6
安装包:rocketmq-all-4.7.1-bin-release.zip
JDK1.8
maven环境
下载安装包
1 解压
1.1
使用MobaXterm工具连接linux服务器,上传rocketmq-all-4.7.1-bin-release.zip文件至/root/rocketmq目录下
1.2
解压zip文件,命令:
$ unzip rocketmq-all-4.7.1-bin-release.zip
2 修改配置文件
2.1
broker启动时,会占用大量内存,修改配置文件减少内存消耗,修改/root/rocketmq/rocketmq-all-4.7.1-bin-release/bin/runbroker.sh,命令:
$ vi runbroker.sh
2.2
同理修改nameserver启动,修改/root/rocketmq/rocketmq-all-4.7.1-bin-release/bin/runbroker.sh,命令:
$ vi runserver.sh
3 启动
3.1
后台启动nameserver,命令:
$ nohup sh bin/mqnamesrv &
3.2
启动broker,首先修改配置文件 ./conf/broker.conf
文件末尾加入
namesrvAddr = 172.26.0.1:9876
brokerIP1 = 172.26.0.1 (服务器IP地址)
3.3
启动broker命令:
$ nohup bin/mqbroker -n 172.26.0.1:9876 -c /root/rocketmq/rocketmq-4.7.1/conf/broker.conf &
4 rocketmq-console下载、部署
4.1
进入rocketmq-externals项目的GitHub地址,如下图,可看到RocketMQ项目的诸多扩展项目,其中就包含我们需要下载的rocketmq-console。
4.2
修改配置文件:rocketmq-console\src\main\resources\application.properties
4.3
将项目打成jar包,并上传到linux服务器 /root/rocketmq目录下。打包命令
$ mvn clean package -Dmaven.test.skip=true
4.4
启动rocketmq-console服务,启动命令
$ java -jar rocketmq-console-ng-1.0.0.jar
4.5
浏览器访问rocketmq-console http://172.26.0.1:8089/
5 springboot测试rocketmq收发消息
5.1
修改springboot项目application.yml
rocketmq:
name-server: 172.26.0.1:9876
producer:
group: rocketmq-group
5.2
导入rocketmq依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
5.3
编写发送消息和接收消息代码
@GetMapping("/send")
public String send() {
MqMsg msg = new MqMsg();
msg.setTopic("test-topic");
msg.setTags("test-tag");
msg.setContent("hello weigao");
rocketMqService.send(msg);
return "success";
}
/** * 消息队列消费端使用示例 * **/
@Service
@RocketMQMessageListener(topic = "test-topic" , consumerGroup = "consumer-group",messageModel = MessageModel.CLUSTERING)
public class MqRegisteredListenerDemo implements RocketMQListener<String> {
private static final Logger log = LoggerFactory.getLogger(MqRegisteredListenerDemo.class);
@Override
public void onMessage(String message) {
System.out.println("-------收到MQmessage------------:"+message);
}
}
5.4
测试结果
总结
至此rocketmq的单master模式部署完成,此模式仅用于开发环境,生产环境需搭建高可用的集群部署方式!