链接阿里云的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

相关文章

解决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 <=

短链接算法原理

平时我们在上网的时候,印象最深刻的有一次是短链接的服务。例如:平时在微信上看一个网页的时候,如果我们选择在浏览器打开的时候,会看到很长的URL,我们分享的时候,会看到一个很短URL,这就是本次所说的短链接的应用之一。 长链接示例:https://mp.weixin.qq.com/s?__biz=MzAxNzMwOTQ0NA==&mid=2653355437&idx=1&sn=5901826ea63

【Rocketmq入门-基本概念】

Rocketmq入门-基本概念 名词解释名称服务器(NameServer)消息队列(Message Queue)主题(Topic)标签(Tag)生产者(Producer)消费者(Consumer)拉取模式(Pull)推送模式(Push)消息模型(Message Model) 关键组件Broker消息存储工作流程 名词解释 名称服务器(NameServer) 定义: 名称服务器

阿里云服务器ces

允许公网通过 HTTP、HTTPS 等服务访问实例 https://help.aliyun.com/document_detail/25475.html?spm=5176.2020520101.0.0.3ca96b0b3KGTPq#allowHttp

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore