链接阿里云的RocketMQ,发送信息,写一个公用的service类

2024-03-26 15:52

本文主要是介绍链接阿里云的RocketMQ,发送信息,写一个公用的service类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RocketMQMessage模型类

这个类封装了消息发送所需的所有参数。

package com.aliyun.openservices;public class RocketMQMessage {private String topicName;private String tag;private String key;private String body;private String messageGroup;public RocketMQMessage() {}public RocketMQMessage(String topicName, String tag, String key, String body, String messageGroup) {this.topicName = topicName;this.tag = tag;this.key = key;this.body = body;this.messageGroup = messageGroup;}public String getTopicName() {return topicName;}public void setTopicName(String topicName) {this.topicName = topicName;}public String getTag() {return tag;}public void setTag(String tag) {this.tag = tag;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public String getMessageGroup() {return messageGroup;}public void setMessageGroup(String messageGroup) {this.messageGroup = messageGroup;}
}

RocketMQService服务类

这个服务类使用RocketMQMessage类实例来发送消息。

package com.aliyun.openservices;import org.apache.rocketmq.client.apis.ClientConfiguration;
import org.apache.rocketmq.client.apis.ClientConfigurationBuilder;
import org.apache.rocketmq.client.apis.ClientException;
import org.apache.rocketmq.client.apis.ClientServiceProvider;
import org.apache.rocketmq.client.apis.producer.Producer;
import org.apache.rocketmq.client.apis.producer.SendReceipt;
import org.apache.rocketmq.client.apis.message.MessageBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.nio.charset.StandardCharsets;@Service
public class RocketMQService {@Value("${rocketmq.endpoint}")private String endpoint;@Value("${rocketmq.username}")private String username;@Value("${rocketmq.password}")private String password;public SendReceipt sendMessage(RocketMQMessage message) throws ClientException {ClientServiceProvider provider = ClientServiceProvider.loadService();ClientConfigurationBuilder configBuilder = ClientConfiguration.newBuilder().setEndpoints(endpoint);if (username != null && password != null) {configBuilder.setCredentialProvider(new StaticSessionCredentialsProvider(username, password));}ClientConfiguration configuration = configBuilder.build();Producer producer = provider.newProducerBuilder().setClientConfiguration(configuration).setTopics(message.getTopicName()).build();MessageBuilder builder = provider.newMessageBuilder().setTopic(message.getTopicName()).setBody(message.getBody().getBytes(StandardCharsets.UTF_8));if (message.getKey() != null && !message.getKey().isEmpty()) {builder.setKeys(message.getKey());}if (message.getTag() != null && !message.getTag().isEmpty()) {builder.setTag(message.getTag());}if (message.getMessageGroup() != null && !message.getMessageGroup().isEmpty()) {builder.setMessageGroup(message.getMessageGroup());}SendReceipt sendReceipt = producer.send(builder.build());System.out.println("Send mq message success! Topic is:" + message.getTopicName() + " msgId is: " + sendReceipt.getMessageId().toString());producer.close();return sendReceipt;}
}

application.properties配置文件

# RocketMQ配置
rocketmq.endpoint=你的RocketMQ接入点
rocketmq.username=你的用户名
rocketmq.password=你的密码

请确保将你的RocketMQ接入点你的用户名你的密码替换成你自己的RocketMQ服务的实际接入点、用户名和密码。

通过这种方式,我们创建了一个灵活的服务类RocketMQService,它可以发送包含各种参数的消息到RocketMQ。通过使用RocketMQMessage类来封装消息参数,我们简化了方法的调用。

这篇关于链接阿里云的RocketMQ,发送信息,写一个公用的service类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849021

相关文章

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1(错误经验) #include <iostream>#include <string>using namespace std;int main() {string s;string ret;int count = 0;while(cin >> s)for(auto a : s){if(count == 0){if( a <=