1,引用jar包

build.gradle文件添加jar包引用

compile group: 'org.apache.rocketmq', name: 'rocketmq-spring-boot-starter', version: '2.1.1'

2,配置文件

application.properties 配置文件

spring.application.name=app-demp

server.port=8081

###rocketmq###

rocketmq.name-server=192.168.1.107:9876

rocketmq.producer.timeout=10000

3,生成者

MQSender.java - 消息发生接口

import org.apache.rocketmq.client.producer.SendResult;

public interface MQSender{

/**

* 发送消息

*

* @param message 消息信息

* @param topic 主题

* @return 发送结果

*/

SendResult sendMessage(Object message, String topic);

/**

* 发送消息

*

* @param message 消息信息

* @param topic 主题

* @param tags 主题的标签

* @return 发送结果

*/

SendResult sendMessage(Object message, String topic, String tags);

}

RocketMQSender.java - RockemtMQ实现

import com.alibaba.fastjson.JSON;

import lombok.extern.slf4j.Slf4j;

import org.apache.rocketmq.client.exception.MQClientException;

import org.apache.rocketmq.client.producer.DefaultMQProducer;

import org.apache.rocketmq.client.producer.SendResult;

import org.apache.rocketmq.common.message.Message;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Slf4j

@Component

public class RocketMQSender implements MQSender {

@Value("${rocketmq.name-server}")

private String nameServer;

@Value("${rocketmq.producer.timeout}")

private int timeout;

@Value("${spring.application.name}")

private String group;

private DefaultMQProducer producer;

@PostConstruct

public void init() {

producer = new DefaultMQProducer(group); try {

producer.setNamesrvAddr(nameServer); producer.setSendMsgTimeout(timeout); producer.start(); log.info("RocketMQ Producer启动成功! nameServer={}, group={}", nameServer, group);

} catch (MQClientException e) {

log.error("RocketMQ Producer启动失败! nameServer={}, group={} ", nameServer, group, e);

} } @Override

public SendResult sendMessage(Object message, String topic) {

try {

Message msg = new Message(topic, JSON.toJSONBytes(message)); SendResult sendResult = producer.send(msg); log.info("发送MQ成功:sendResult={},message={}", sendResult, message.toString());

return sendResult;

} catch (Exception e) {

log.error("消息发送失败, topic:{}, message:{}", topic, message, e);

} return null;

} @Override

public SendResult sendMessage(Object message, String topic, String tags) {

try {

Message msg = new Message(topic, tags, JSON.toJSONBytes(message)); SendResult sendResult = producer.send(msg); log.info("发送MQ成功:sendResult={},message={}", sendResult, message.toString());

return sendResult;

} catch (Exception e) {

log.error("消息发送失败, topic:{}, tags:{}, message:{}", topic, tags, message, e);

} return null;

}}

OrderProducer.java - 发送者实例

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service

public class OrderProducer {

@Resource

private MQSender mqSender;

public void createOrder() {

mqSender.sendMessage("我是注册订单,请尽快处理", "TEMP");

}}

4,消费者

OrderConsumer.java

import lombok.extern.slf4j.Slf4j;

import org.apache.rocketmq.common.message.MessageExt;

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;

import org.apache.rocketmq.spring.core.RocketMQListener;

import org.springframework.stereotype.Component;

@Slf4j

@Component

@RocketMQMessageListener(consumerGroup = "TEMP-GROUP", topic = "TEMP")

public class OrderConsumer implements RocketMQListener {

@Override

public void onMessage(MessageExt messageExt) {

String message = new String(messageExt.getBody());

log.info("收到消息,topic:{}, tag:{}, msgId:{}, body:{}", messageExt.getTopic(), messageExt.getTags(),

messageExt.getMsgId(), message); }}

发送者执行结果

消费者执行结果

rocketmq java例子_SpringBoot和RocketMQ的简单实例相关推荐

  1. 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)

    用Java实现小球碰壁反弹的简单实例(算法十分简单) 核心代码如下: if(addX){ x+=3; }else{ x-=3; } if(addY){ y+=6; }else{ y-=6; } if( ...

  2. rocketmq 消息指定_SpringBoot 整合 RocketMQ 如何实现消息生产消费?

    有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而RocketMQ是可以支持消息的顺序消费的. RocketMQ在发送消息的时候,是将消息发送到不同的队列中,然后消费端从多个队列中读取 ...

  3. mxnet java 例子_mxnet(gluon) 实现DQN简单小例子

    参考文献 关于增强学习的基本知识可以参考第二个链接,讲的挺有意思的.DQN的东西可以看第一个链接相关视频.课程中实现了Tensorflow和pytorch的示例代码.本文主要是改写成了gluon实现 ...

  4. java 天气爬虫_java网页爬虫简单实例详解——获取天气预报。

    [本文介绍] 爬取别人网页上的内容,听上似乎很有趣的样子,只要几步,就可以获取到力所不能及的东西,例如呢?例如天气预报,总不能自己拿着仪器去测吧!当然,要获取天气预报还是用webService好.这里 ...

  5. java播放器使用教程_java 实现音乐播放器的简单实例

    java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...

  6. java 字符长度 中文_java判断中文字符串长度的简单实例

    话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...

  7. java音乐播放器视频_java 实现音乐播放器的简单实例

    java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...

  8. java判断字符长度_java判断中文字符串长度的简单实例

    话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...

  9. webservice实例java_Java WebService(实战) 简单实例

    一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...

最新文章

  1. 北大数学天才毕业后坚持出家:理想现实间的挣扎
  2. 单链表-单链表A拆分为A(偶)和C(奇) (尾插法建表)
  3. xgboost参数_珍藏版 | 20道XGBoost面试题,你会几个?(下篇)
  4. 操作系统pv操作学习总结
  5. SpringBoot整合SpringBatch实用简例
  6. java 钩子_java中钩子方法的概念
  7. 调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇
  8. a.out.h 头文件分析 \linux-1.0\linux\include\linux\a.out.h
  9. java之yield(),sleep(),wait()区别详解-备忘笔记
  10. PD2SE-Net:植物病害诊断和严重性评估网络(首次)
  11. 二叉树求到某一个节点路径
  12. 信号量实现环形buff下多生产者多消费者模型
  13. function传值传字符串,然后Ajax url传值的时候传这个装字符串的变量
  14. 墨西哥总统:被拆掉两次的亭子
  15. SharePoint is Dying
  16. 【MAC】有道笔记登陆不了,刷新不出登陆
  17. 【财经期刊FM-Radio|2021年03月04日】
  18. Kali linux无线网络渗透详解笔记
  19. python实现坐标点的系统转换
  20. 简单方法保持屏幕常亮

热门文章

  1. 自定义Valid注解,校验List集合
  2. 记录——oracle数据库备份
  3. C语言 文件读写 fseek 函数 - C语言零基础入门教程
  4. 快速搭建Python+Selenium+Sublime 自动化测试环境方法
  5. java的excel导出_java 实现excel 导出功能
  6. linux内核功能关闭透明大页 功能,redhat linux 7.4关闭透明大页
  7. JAVA如何隐藏异常堆栈_java – 如何在控制台上停止打印异常堆栈跟踪?
  8. 窄带语谱图c语言算法,MELP语音编码算法实现及算法改进
  9. 信息安全学习路线图_Python学习图谱:学习到困惑的时候可以参考的图谱
  10. java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)