rocketmq 消息 自定义_跟我学RocketMQ[1-3]之普通消息及封装DefaultMQProducer支持spring...

本文介绍如何使用RocketMQ的Java客户端发送普通消息,并对其进行Spring框架的封装。通过DefaultMQProducer发送消息,然后展示如何将DefaultMQProducer封装为Spring Bean,简化配置和使用。文中提供了一个简单的RocketMQSimpleProducerAgent类,方便在不同业务中灵活运用。
摘要由CSDN通过智能技术生成

博客地址:朝·闻·道​www.wuwenliang.net

本文是《跟我学RocketMQ系列》的第三篇,前面两篇中,我带领大家了解了如何搭建RocketMQ以及如何通过web端的console进行RocketMQ的运维。

从本文开始,我将从研发的角度,逐步深入RocketMQ。

本文先讲解如何利用RocketMQ的java客户端进行普通消息的发送以及对它进行薄封装,以便更好的适配spring框架。

对RocketMQ的封装版本的代码已经上传github,shield-rocketmq-client-spring 欢迎大家star及fork~

通过DefaultMQProducer发送普通消息RocketMQ使用DefaultMQProducer实现普通消息的发送操作。

首先通过构造方法初始化一个生产者组为“PID-TEST”的普通消息生产者。

注意 RocketMQ官方建议,生产者组统一以 PID_ 开头,消费者组统一以 CID_ 开头。

DefaultMQProducer defaultMQProducer =

new DefaultMQProducer("PID_TEST");

设置Nameserver地址

defaultMQProducer.setNamesrvAddr("127.0.0.1:9876");

启动生产者,建立到broker的链接

defaultMQProducer.start();

使用Jackson进行消息实体序列化

ObjectMapper objectMapper = new ObjectMapper();

for (int i = 0; i < 10; i++) {

try {

MessageBean msg = new MessageBean("rocketmq-simple-msg-test",

"SNOWALKER_TEST",

"SNOWALKER_TEST-TAG",

"localhost.localdomain",

"测试消息简单发送------第" + i + "次",

"10",

"simple-msg-test-" + i);

构造消息协议并使用Jackson序列化为JSON字符串

String message = objectMapper.writeValueAsString(msg);

使用官方的Message实体,构造消息体,并设置消息发布的主题名,TAG名,同时需要将要发送的消息体转换为二进制形式。

Message sendMessage = new Message(

msg.getTopicName(),

msg.getTagName(),

message.getBytes());

通过调用defaultMQProducer的send(Message msg, SendCallback sendCallback)方法进行消息发送

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值