rocketmq java例子_SpringBoot和RocketMQ的简单实例
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的简单实例相关推荐
- 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)
用Java实现小球碰壁反弹的简单实例(算法十分简单) 核心代码如下: if(addX){ x+=3; }else{ x-=3; } if(addY){ y+=6; }else{ y-=6; } if( ...
- rocketmq 消息指定_SpringBoot 整合 RocketMQ 如何实现消息生产消费?
有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而RocketMQ是可以支持消息的顺序消费的. RocketMQ在发送消息的时候,是将消息发送到不同的队列中,然后消费端从多个队列中读取 ...
- mxnet java 例子_mxnet(gluon) 实现DQN简单小例子
参考文献 关于增强学习的基本知识可以参考第二个链接,讲的挺有意思的.DQN的东西可以看第一个链接相关视频.课程中实现了Tensorflow和pytorch的示例代码.本文主要是改写成了gluon实现 ...
- java 天气爬虫_java网页爬虫简单实例详解——获取天气预报。
[本文介绍] 爬取别人网页上的内容,听上似乎很有趣的样子,只要几步,就可以获取到力所不能及的东西,例如呢?例如天气预报,总不能自己拿着仪器去测吧!当然,要获取天气预报还是用webService好.这里 ...
- java播放器使用教程_java 实现音乐播放器的简单实例
java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...
- java 字符长度 中文_java判断中文字符串长度的简单实例
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...
- java音乐播放器视频_java 实现音乐播放器的简单实例
java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...
- java判断字符长度_java判断中文字符串长度的简单实例
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...
- webservice实例java_Java WebService(实战) 简单实例
一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...
最新文章
- 北大数学天才毕业后坚持出家:理想现实间的挣扎
- 单链表-单链表A拆分为A(偶)和C(奇) (尾插法建表)
- xgboost参数_珍藏版 | 20道XGBoost面试题,你会几个?(下篇)
- 操作系统pv操作学习总结
- SpringBoot整合SpringBatch实用简例
- java 钩子_java中钩子方法的概念
- 调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇
- a.out.h 头文件分析 \linux-1.0\linux\include\linux\a.out.h
- java之yield(),sleep(),wait()区别详解-备忘笔记
- PD2SE-Net:植物病害诊断和严重性评估网络(首次)
- 二叉树求到某一个节点路径
- 信号量实现环形buff下多生产者多消费者模型
- function传值传字符串,然后Ajax url传值的时候传这个装字符串的变量
- 墨西哥总统:被拆掉两次的亭子
- SharePoint is Dying
- 【MAC】有道笔记登陆不了,刷新不出登陆
- 【财经期刊FM-Radio|2021年03月04日】
- Kali linux无线网络渗透详解笔记
- python实现坐标点的系统转换
- 简单方法保持屏幕常亮
热门文章
- 自定义Valid注解,校验List集合
- 记录——oracle数据库备份
- C语言 文件读写 fseek 函数 - C语言零基础入门教程
- 快速搭建Python+Selenium+Sublime 自动化测试环境方法
- java的excel导出_java 实现excel 导出功能
- linux内核功能关闭透明大页 功能,redhat linux 7.4关闭透明大页
- JAVA如何隐藏异常堆栈_java – 如何在控制台上停止打印异常堆栈跟踪?
- 窄带语谱图c语言算法,MELP语音编码算法实现及算法改进
- 信息安全学习路线图_Python学习图谱:学习到困惑的时候可以参考的图谱
- java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)