赞
踩
目录
rocketmq是最近很流行的消息中间件,有很多的优点,比如多个topic也不会引起性能问题;今天我们开始搭建启动集成springboot落地:
1、解压到一个无中文无空格的目录下,解压后目录如下:
注意:解压到一个无中文无空格的目录下,否则会有各种意想不到的错误。
2、调整堆内存大小:把Xms、Xmx、-Xmn都设置成512m
打开runserver.cmd:
这里%CLASSPATH%要加个双引号,不然启动时会找不到jdk
打开runbroker.cmd:
此处添加 ‐Drocketmq.broker.diskSpaceWarningLevelRatio=0.99的意思是:把Broker磁盘空间利用率设置为99%,默认是85%。
3、启动NameServer :进入bin目录,执行 start mqnamesrv.cmd
以上说明启动成功
4、启动broker:进入bin目录,执行 mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true,此处的autoCreateTopicEnable=true 也可以添加到配置文件broker.conf中,意思是自动生成topic,测试环境可以开启!线上环境尽量关闭!
启动成功显示:
5、测试生产信息:进入cmd命令窗口,执行
- set NAMESRV_ADDR=127.0.0.1:9876
- tools.cmd org.apache.rocketmq.example.quickstart.Producer
此处会产生1000条消息
6、测试消费信息 :进入cmd命令窗口,执行
- set NAMESRV_ADDR=127.0.0.1:9876
- tools.cmd org.apache.rocketmq.example.quickstart.Consumer
此处会消费1000条信息
7、消息轨迹配置:
打开消息轨迹功能,需要在broker.conf中打开一个关键配置:
traceTopicEnable=true
8、关闭命令:
-
- # 1.关闭NameServer
- sh bin/mqshutdown namesrv
- # 2.关闭Broker
- sh bin/mqshutdown broker
1、相关jar包引入
- <dependency>
- <groupId>org.apache.rocketmq</groupId>
- <artifactId>rocketmq-spring-boot-starter</artifactId>
- <version>2.2.1</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
对应的mq版本如下:
2、核心配置文件:最基础的配置
- rocketmq.name-server=127.0.0.1:9876
- rocketmq.producer.group=springBootGroup
- server.port=8081
3、生产者生产消息
- import org.apache.rocketmq.client.producer.SendResult;
- import org.apache.rocketmq.spring.core.RocketMQTemplate;
- import org.apache.rocketmq.spring.support.RocketMQHeaders;
- import org.springframework.messaging.Message;
- import org.springframework.messaging.support.MessageBuilder;
- import org.springframework.stereotype.Component;
-
- import javax.annotation.Resource;
-
- /**
- * @author :nandao
- **/
- @Component
- public class SpringProducer {
-
- @Resource
- private RocketMQTemplate rocketMQTemplate;
-
- public void sendMessage(String topic,String msg){
- this.rocketMQTemplate.convertAndSend(topic,msg);
- }
-
- }
调用入口:
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
-
- /**
- * @author :nandao
- * @description:
- **/
- @RestController
- @RequestMapping("/MQTest")
- public class MQTestController {
-
- private final String topic = "TestTopic";
- @Resource
- private SpringProducer producer;
- @RequestMapping("/sendMessage")
- public String sendMessage(String message){
- producer.sendMessage(topic,message);
- return "消息发送完成";
- }
-
- }
4、消费者监听
- import org.apache.rocketmq.spring.annotation.ConsumeMode;
- import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
- import org.apache.rocketmq.spring.core.RocketMQListener;
- import org.springframework.stereotype.Component;
- /**
- * @RocketMQMessageListener 注解可以详细了解
- * @author :nandao
- **/
- @Component
- @RocketMQMessageListener(consumerGroup = "MyConsumerGroup", topic = "TestTopic",consumeMode= ConsumeMode.CONCURRENTLY)
- public class SpringConsumer implements RocketMQListener<String> {
- @Override
- public void onMessage(String message) {
- System.out.println("consumer message : "+ message);
- }
- }
5、启动boot服务:生产消息
生产调用:
消费显示:
RocketMQ源代码中并没有提供控制台,但是有一个Rocket的社区扩展项目中提供
了一个控制台,地址: https://github.com/apache/rocketmq-dashboard
下载下来后,解压并进入对应的目录
1、使用maven进行编译
mvn clean package -Dmaven.test.skip=true
2、执行jar:
编译完成后,获取target下的jar包,就可以直接执行。但是这个时候要注意,在这
个项目的application.yml中需要指定nameserver的地址。默认这个属性是指向本
地。如果配置为空,会读取环境变量NAMESRV_ADDR。
那我们可以在jar包的当前目录下增加一个application.yml文件,覆盖jar包中默认的
一个属性:
java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar
3、启动完成后,可以访问 http://127.0.0.1:8080/ 看到管理页面
上面有多个菜单,可以点击一一查看,均为监控指标!
到此,rocketmq整个使用流程分享完毕,下篇我们更深入分析其原理和高级功能,敬请期待!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。