springboot集成rocketmq

  本文是springboot集成rocketmq的入门篇,主要介绍单机环境下安装rocketmq,并集成到springboot框架中,实现字符串类型消息的生产和消费。
  1)高可用集群部署方案请参考 待更新。。。
  2)更多使用方式请参考 待更新。。。

一、下载、安装、启动

1、下载
http://rocketmq.apache.org/dowloading/releases/

2、安装
已rocketmq-all-4.6.0-source-release.zip为例

unzip rocketmq-all-4.6.0-source-release.zip
cd rocketmq-all-4.6.0-source-release
mvn -Prelease-all -DskipTests clean install -U
cd distribution/target/rocketmq-4.6.0/rocketmq-4.6.0

注:target目录看起来有些奇怪,不用管具体差异,找到里面的
rocketmq-4.6.0文件夹可以放到任意指定未知
3、配置环境变量
/etc/profile

export ROCKETMQ_HOME=/Users/zhanghao/Desktop/develop/rocketmq-4.6.0
export PATH=$PATH:$ROCKETMQ_HOME/bin

4、启动NameServer
  进入bin目录,当然环境变量已经配置了PATH的话可以直接运行,此处只是最简单的启动,采用所有的默认配置,下述Broker也采用默认配置。
默认端口:9876

nohup sh mqnamesrv &

5、启动Broker
默认端口:10911

nohup sh mqbroker -n localhost:9876 &

6、创建测试Topic

sh mqadmin updateTopic -b localhost:10911 -n localhost:9876 -t my-topic

  -b Broker地址
  -n NameServer地址
  -t Topic名称

二、SpringBoot集成

1、pom.xml

<dependency>
	<groupId>org.apache.rocketmq</groupId>
	<artifactId>rocketmq-spring-boot-starter</artifactId>
	<version>2.0.4</version>
</dependency>

2、application.properties

# 生产者配置
rocketmq.name-server=localhost:9876
rocketmq.producer.group=my-group1
rocketmq.producer.sendMessageTimeout=300000
# 消费者配置
#rocketmq.name-server=localhost:9876

3、生产者

package com.houzigege.rocketmq;

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class ProducerController {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    @RequestMapping("/send")
    public String testSend(String msg) {
        try {
            rocketMQTemplate.convertAndSend("my-topic", msg);
            return "success";
        } catch (Exception e) {
            e.printStackTrace();
            return "fail";
        }
    }
}

4、消费者

package com.houzigege.rocketmq;

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

@Component
@RocketMQMessageListener(topic = "my-topic", consumerGroup = "string_consumer")
public class StringConsumeListener implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("------- StringConsumer received: " + message);
    }
}

参考:
http://rocketmq.apache.org/docs/quick-start/
https://github.com/apache/rocketmq-spring/tree/master/rocketmq-spring-boot-samples

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot集成RocketMQ可以通过引入RocketMQ的相关依赖和配置来实现。在启动类中,需要添加@SpringBootApplication注解,并在main方法中调用SpringApplication.run方法来启动应用。同时,还需要在启动类中添加@ComponentScan注解来指定需要扫描的包路径。\[1\]\[2\] 在集成RocketMQ的应用中,可以创建一个消息控制器类,使用@RestController注解来标识该类为控制器类。在该类中,可以使用@Autowired注解来注入RocketMQTemplate对象,用于发送消息。通过@RequestMapping注解来定义接口路径和请求方法,可以在方法中调用rocketMQTemplate.convertAndSend方法来发送消息。\[3\] 需要注意的是,在使用RocketMQ的时候,还需要配置JmsConfig.TOPIC,即主题名,确保发送消息和消费消息的主题名一致。\[3\] 总结起来,SpringBoot集成RocketMQ的步骤包括引入依赖、配置启动类、创建消息控制器类和配置主题名。 #### 引用[.reference_title] - *1* *2* [Spring Boot整合Rocketmq](https://blog.csdn.net/qq_18603599/article/details/81172866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Spring Boot集成RocketMq(一看就会)](https://blog.csdn.net/weixin_44039105/article/details/121755023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值