SpringBoot集成RocketMQ-初阶篇

1.下载RocketMQ

如果我们要在本地环境使用RocketMQ,需要先下载RocketMQ的(点击直接下载)。

2.安装RocketMQ

1)启动NameServer

我们解压完压缩包到项目的目录下:

$ cd rocketmq-all-5.1.4-bin-release/bin

macOS 和Linux命令:

### 启动NameServer
$ nohup sh mqnamesrv &

### 查看服务是否成功启动
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

 Windows 用户则需要先配置环境变量:

 然后执行命令:

$ mqnamesrv.cmd
The Name Server boot success...

2)启动Broker

macOS 和Linux命令:

### 启动 Broker
$ nohup sh bin/mqbroker -n localhost:9876 &

### 检查broker是否启动成功, 例如: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...

Windows启动命令:

$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...

这里暂时先介绍macOS 、Linux和Windows安装的方式,如果有需要用docker或Kubernetes的用户可以翻阅一下的下载(点击直接下载)的RADME.md文档。

至此,我们的单点RocketMq的就已经搭载完毕。

2.SpringBoot搭建生产者和消费者

1)搭建服务

tips:这里我们会搭建两个服务来模拟实战项目中的生产者和消费者。

名字可以根据自己的喜好命令(这里只做简单的演示)。


2)导入依赖

   <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.2.0</version> <!-- 请使用合适的版本 -->
  </dependency>

其他依赖根据自己的需求加入即可。

3)配置文件

生产者配置文件:

# application.properties
rocketmq.name-server=127.0.0.1:9876
rocketmq.producer.group=producer-1
rocketmq.producer.send-message-timeout=50000

消费者配置文件:

# application.properties
rocketmq.name-server=127.0.0.1:9876
rocketmq.consumer.group=consumer-1

4)构建Broker主题

这里是重中之重!!不然你的服务是没法找到对应的通道的!!!

到我们解压后的bin目录后输入 Linux命令:

$ sh mqadmin updatetopic -n localhost:9876 -t TestTopic -c DefaultCluster

Windows命令:

mqadmin updatetopic -n localhost:9876 -t TestTopic -c DefaultCluster

tips: TestTopic 就是我们搭建的主题。

5)搭建生产者代码

在生产者服务加上:

package com.producer.demo.service;

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyProducer {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    
    public void send(String topic, String message) {
        rocketMQTemplate.convertAndSend(topic, message);
    }
}

6)搭建消费者代码

在消费者服务里面加上:

package com.consumer.demo.service.impl;

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

@RocketMQMessageListener(topic = "TestTopic", consumerGroup = "consumer-1")
@Service
public class MyConsumer implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        // 在这里处理接收到的消息
        System.out.println("Received: " + message);
    }
}

7)测试代码

在生产者服务加上:

package com.producer.demo.service;

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyProducer {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    
    public void send(String topic, String message) {
        rocketMQTemplate.convertAndSend(topic, message);
    }
}

测试发送消息结果:

消费者接收结果:

至此,最基础的RocketMQ的消费者和生产者服务已经搭建完毕,后续会继续更新更高级的用法,欢迎大家在评论区提问和解答!

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值