使用单master模式实现RocketMQ部署

323 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

准备工作

环境:centOS7.6

安装包:rocketmq-all-4.7.1-bin-release.zip

JDK1.8

maven环境

下载安装包

官网下载地址 

image.png

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

image.png

2 修改配置文件


2.1

broker启动时,会占用大量内存,修改配置文件减少内存消耗,修改/root/rocketmq/rocketmq-all-4.7.1-bin-release/bin/runbroker.sh,命令:

$ vi runbroker.sh 

image.png

2.2

同理修改nameserver启动,修改/root/rocketmq/rocketmq-all-4.7.1-bin-release/bin/runbroker.sh,命令:

$ vi runserver.sh

image.png

3 启动


3.1

后台启动nameserver,命令:

$ nohup sh bin/mqnamesrv &

image.png

3.2

启动broker,首先修改配置文件 ./conf/broker.conf

文件末尾加入

namesrvAddr = 172.26.0.1:9876  

brokerIP1 = 172.26.0.1 (服务器IP地址)

image.png

3.3

启动broker命令:

$ nohup bin/mqbroker -n 172.26.0.1:9876 -c /root/rocketmq/rocketmq-4.7.1/conf/broker.conf &

image.png

4  rocketmq-console下载、部署


4.1

进入rocketmq-externals项目的GitHub地址,如下图,可看到RocketMQ项目的诸多扩展项目,其中就包含我们需要下载的rocketmq-console。

在这里插入图片描述

4.2

修改配置文件:rocketmq-console\src\main\resources\application.properties

image.png

4.3

将项目打成jar包,并上传到linux服务器 /root/rocketmq目录下。打包命令

$ mvn clean package -Dmaven.test.skip=true

image.png

4.4

启动rocketmq-console服务,启动命令

$ java -jar rocketmq-console-ng-1.0.0.jar

image.png

4.5

浏览器访问rocketmq-console http://172.26.0.1:8089/

image.png

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

测试结果

image.png

总结

至此rocketmq的单master模式部署完成,此模式仅用于开发环境,生产环境需搭建高可用的集群部署方式!