码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RocketMq(三)-springboot项目访问


    前两篇记录了RocketMq下载安装与启动、面板搭建与问题解决:

    • RocketMq(一)-下载安装
    • RocketMq(二)-访问面板搭建及问题修复

    本篇记录用java项目访问消息队列,使用Springboot项目,创建一个项目rocket-demo,再创建两个module:producer、consumer,生产者发送一个简单的字符串,消费者接受并打印,一个很简单的例子。
    为简单操作,两个module都以rocketmq-demo为父项目,依赖统一在rocketmq-demo的pom文件中引入。

    一、引入依赖

    在项目(rocketmq-demo)最外层pom中引入依赖:

    • SpringBoot相关依赖及版本管理(根据自己习惯就好): spring-boot-starter、spring-boot-starter-web
    • rockermq起步依赖
    
    <dependency>
         <groupId>org.apache.rocketmqgroupId>
         <artifactId>rocketmq-spring-boot-starterartifactId>
         <version>2.2.2version>
     dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • lombok

    二、编写生产者代码

    1、配置文件application.yml

    spring:
      application:
        name: producer
        
    server:
      port: 5125
      
    rocketmq:
      name-server: localhost:9876
      producer:
        group: zrk-producer
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    其中name-server为自己安装的rocketmq的name server访问地址
    2、编写代码

    @RequestMapping("name")
    @RestController
    public class NameController {
    
        @Resource
        private RocketMQTemplate rocketMQTemplate;
    
        @GetMapping("send")
        public String sendName(String name) {
            rocketMQTemplate.convertAndSend("send-name", name);
            return "发送成功:" + name;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    注:(1)直接引入RocketMQTemplate进行访问 (2)"send-name"为topic名称

    三、编写消费者代码

    1、配置文件application.yml

    spring:
      application:
        name: consumer
        
    server:
      port: 5124
      
    rocketmq:
      name-server: localhost:9876
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    其中name-server为自己安装的rocketmq的name server访问地址
    2、编写代码

    @Slf4j
    @Service
    @RocketMQMessageListener(consumerGroup = "zrk-consumer", topic = "send-name")
    public class NameListener implements RocketMQListener<String> {
        @Override
        public void onMessage(String s) {
            log.info("收到名称:{}", s);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注:(1)consumerGroup必须设置,否则报错 (2) topic必须与生产者保持一致

    四、访问调试

    1、启动并访问生产者接口

    postman访问:
    在这里插入图片描述

    2、查看RocketMq面板

    打开面板->消息->选择topic:send-name->点击搜索:
    在这里插入图片描述
    点击MESSAGE DETAIL
    在这里插入图片描述

    3、启动消费者

    在这里插入图片描述
    看到打印出日志
    再看消息队列信息详情:
    在这里插入图片描述
    可以看到状态为已被消费

  • 相关阅读:
    工业网关它的功能是什么
    MongoDB升级步骤
    什么是方法,什么是方法论:了解自我精进提升的底层逻辑
    如何在Hive中更新拉链表
    字符串变形(字符串大小写切换和变现)
    CSS学习250~272(精灵图+字体图标+CSS三角+CSS用户界面样式+vertical-align+溢出文本省略号显示+布局技巧+CSS初始化)
    【UniApp】-uni-app-动态计算字体大小(苹果计算器)
    PDF文档一键自动生成目录和书签
    docker mysql 提示 Warning: World-writable config file ‘/etc/my.cnf’ is ignored
    【Java】FileUtils练习题3
  • 原文地址:https://blog.csdn.net/qq_21067307/article/details/126039186
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号