Spring Boo集成RocketMQ
创始人
2024-05-29 21:49:37
0

一、介绍

  • Producer:生产者,用来发送消息
  • Consumer:消费者,用来消费消息
  • NameServer:服务注册中心,用于注册生产者、消费者,存储Broker路由 并提供给生产者和消费者
  • Broker:用于存储消息

在这里插入图片描述

项目结构如下:
首先一个父目录:SpringBoot-RocketMQ
然后下面分别是三个子目录:
生产者:springboot-dubbo-provider
接口:springboot-dubbo-interface
消费者:springboot-dubbo-consumer
(由于复用的之前dubbo项目,目录名称没有改过来)
项目源码我挂在github上面了,直接拉取master分支即可:https://github.com/shengwanping/SpringBoot-RocketMQ
在这里插入图片描述

二、构建项目

1、pom配置

1、SpringBoot-RocketMQ中pom.xml加入:

 org.springframework.bootspring-boot-dependencies2.3.12.RELEASEpomimportorg.apache.rocketmqrocketmq-spring-boot-starter2.2.0pomimport

2、springboot-dubbo-provider中pom.xml加入:

 org.examplespringboot-dubbo-interface1.0-SNAPSHOTorg.springframework.bootspring-boot-starter-weborg.apache.rocketmqrocketmq-spring-boot-starter2.2.0

3、springboot-dubbo-consumer中pom.xml加入:

org.examplespringboot-dubbo-interface1.0-SNAPSHOTorg.springframework.bootspring-boot-starter-weborg.apache.rocketmqrocketmq-spring-boot-starter2.2.0

4、springboot-dubbo-interface 只是一个接口工具包,pom.xml中不需要额外配置

2、yaml配置

1、生产者application.yml配置如下

server:port: 8010rocketmq:name-server: localhost:9876 # 连接Rocketmq Name Server服务注册中心producer: # 生产者group: producer-one # 生产者组.随意取名

2、消费者application.yml配置如下

server:port: 8011rocketmq:name-server: localhost:9876 # 连接Rocketmq Name Server服务注册中心producer: # 消费者者group: consumer-one # 消费者组.随意取名

3、实现类

1、接口工具包下面只有一个接口:

public interface DemoService {void sendHello();
}

2、生产者包下有两个类:
这里用启动类直接调用了接口

package org.dubbo.provider;import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.dubbo.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;/*** 模拟 消息生产者*/
@Service("demoService")
public class DemoServiceImpl implements DemoService {@Autowiredprivate RocketMQTemplate rocketMQTemplate;@Overridepublic void sendHello() {// 向Proder发送消息                topic           发送的消息rocketMQTemplate.convertAndSend("topic_001", "Hello RocketMQ");}
}
package org.dubbo.provider;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class ProviderApplication {public static void main(String[] args) {// 获取上下文ConfigurableApplicationContext context = SpringApplication.run(ProviderApplication.class, args);// 模拟Controller调用这个接口(启动后直接调用sendHello()方法,发送消息)DemoServiceImpl demoService = (DemoServiceImpl) context.getBean("demoService");demoService.sendHello();}
}

3、消费者包下有两个类:

package org.dubbo.consumer;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}
package org.dubbo.consumer;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;/*** 消息 消费者*/
@Component
// 指定topic 和 消费者组
@RocketMQMessageListener(topic = "topic_001", consumerGroup = "${rocketmq.producer.group}")
public class ConsumerMode implements RocketMQListener { // 继承RocketMQListener接口@Overridepublic void onMessage(String s) {System.out.println("收到的消息是:"+s);}
}

完成了如上配置,生产者和消费者的代码就完成了,然后需要启动rocketmq的NameServer(路由注册中心)和BrokerServer

三、RocketMQ

如何启动NameServer和Broker请参考下面这篇文章:
RocketMQ下载,RocketMQ可视化控制台下载

四、启动生产者和消费者

启动 NameServer和Broker 之后我们启动生产者和消费者 这时如果在消费者下面打印“收到的消息是:Hello RocketMQ”,则说明成功了。
在这里插入图片描述
如果有安装启动RocketMQ可视化管理平台,我们还能在上面清晰看到生产者发送的消息
在这里插入图片描述
本人也是刚刚学习RocketMQ,有什么不足的欢迎大家留言交流!

相关内容

热门资讯

旅行的英语作文 旅行的英语作文(精选21篇)  在平日的学习、工作和生活里,许多人都有过写作文的经历,对作文都不陌生...
祝贺别人晋升英语作文范文【最... 祝贺别人晋升英语作文范文 篇一Congratulations on Your PromotionDe...
万圣节的西方的鬼节【优质6篇... 万圣节的西方的鬼节 篇一万圣节是西方国家的一个重要节日,它被称为“鬼节”,是因为在这一天,人们会扮成...
我的暑假作文 我的暑假英语作文8篇  在暑假里有人选择宅在家里,偷的半日闲;有人选择远行,背上行囊远行。无论是何种...
英语作文【经典6篇】 英语作文 篇一:The Importance of Learning EnglishIn today...
英语作文道歉题目及范文【优选... 英语作文道歉题目及范文 篇一题目:Apologizing to a Friend for Forge...
我的铅笔盒英语作文(精选3篇... 我的铅笔盒英语作文 篇一Title: My Pencil CaseIntroduction: My ...
拯救动物的英语作文【实用3篇... Title: Saving AnimalsEssay 1:Saving AnimalsAnimals...
戒烟的英语作文(经典3篇) 戒烟的英语作文 篇一: The Importance of Quitting SmokingSmok...
描写我的学校初中英语作文【实... 描写我的学校初中英语作文 篇一My Wonderful SchoolI am a student a...
网络安全英语作文范文【优秀6... 网络安全英语作文范文 篇一Title: The Importance of Cybersecurit...
航天类英语作文初中范文(精简... 航天类英语作文初中范文 篇一:The Importance of Space Exploration...
我崇拜的人英语作文(推荐6篇... 我崇拜的人英语作文 篇一The Person I AdmireThe person I admire...
勇敢英语作文【精选5篇】 勇敢英语作文 篇一Being Brave in the Face of ChallengesLife...
英语作文写信范文6句29篇(... 篇一:英语作文写信范文6句29篇Dear Mr. Smith,I am writing to exp...
小王子的英文版读后感【优质6... 小王子的英文版读后感 篇一"The Little Prince" by Antoine de Sai...
我的一天小学生作文600字【... 我的一天小学生作文600字 篇一早上,我被妈妈亲切地叫醒。我慢慢地睁开眼睛,伸了个懒腰,感觉精神焕发...
我们应该保持健康英语句子(推... 我们应该保持健康英语句子 篇一健康是我们生活中最重要的资产之一。保持健康对于我们的身体和心理都至关重...
常用的经典英语格言警句(精选... 常用的经典英语格言警句 篇一经典英语格言警句是我们生活中常常可以听到的一种表达方式,它们短小精悍、含...
英语演讲稿:机会与挑战并存(... 英语演讲稿:机会与挑战并存 篇一Opportunities and Challenges Coexi...