目录

1.创建topic

2.新建Spring boot项目

3.导入依赖

4.配置yml文件

5.新建Controller(生产服务)

6.新建消费者

7.配置类(定义topic)

8.添加消息以及 消费者查看

8.1 调用接口 往Mq中添加消息

8.2添加消息后? 消费者监听到消息? 进行消费

9.MQ图形界面控制台查看


1.创建topic

此处使用RocketMq图形界面新建topic

安装RocketMq请移步 =====》》》

RocketMq安装控制台图形界面_的博客-CSDN博客

此处已创建好topic

2.新建Spring boot项目

3.导入依赖

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

4.配置yml文件

端口 服务器地址 组名

server:
  port: 9091
#rocketmq配置信息
rocketmq:
  #nameservice服务器地址(多个以英文逗号隔开)
  name-server: 127.0.0.1:9876
  #生产者配置
  producer:
    #组名
    group: anran-producer-group
    #目的地(topic:tag)
    #topic
    topic: anran-topic
    #sync tag(同步消息tag)
    sync-tag: anran-sync-tags
    #async tag(异步消息tag)
    async-tag: anran-async-tags
    #oneway tag(单向消息tag)
    oneway-tag: anran-oneway-tags

5.新建Controller(生产服务)

往主题 first_topic 添加信息

注意JmsConfig.TOPIC(主题名要一样 此处用 ‘first_topic’)

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.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MessageController {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;//注入Mq
 
    @RequestMapping(value = "/CreateProduct",method = RequestMethod.GET)
    public String  createProduct(String s) {
        //添加信息
        rocketMQTemplate.convertAndSend(JmsConfig.TOPIC,"添加信息为:==="+s);
        return "添加成功";
    }
}

6.新建消费者

此时消费者和生产者 写在同一个项目,也可以写在不同项目,写法一样依赖一样

注意JmsConfig.TOPIC(主题名要一样 此处用 ‘first_topic’)

consumerGroup = “my-consumer-group” 一个生产者可以有 无数个消费者但是消费者 组名不能一样,Mq根据组名 进行发信息(可以这样理解) 若组名一样 只会发其中一个消费者

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
 
@Component
@RocketMQMessageListener(topic = JmsConfig.TOPIC,consumerGroup = "my-consumer-group")
public class Consumer implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("消费者收到信息:==="+message);
    }
}

7.配置类(定义topic)

public class JmsConfig {
    /**
     * 主题名称 主题一般是服务器设置好 而不能在代码里去新建topic( 如果没有创建好,生产者往该主题发送消息 会报找不到topic错误)
     */
    public static final String TOPIC = "first_topic";
}

此时运行项目

8.添加消息以及 消费者查看

8.1 调用接口 往Mq中添加消息

8.2添加消息后 消费者监听到消息 进行消费

9.MQ图形界面控制台查看

这一步可以没有,只是为了看下添加信息

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐