使用的是如下代码发送消息,调试时发现代码一直停留在
Producer producer = provider.newProducerBuilder().setTopics(topic).setClientConfiguration(config).build();
public void sendMessage(String topic, String messageData){
try{
ClientServiceProvider provider = ClientServiceProvider.loadService();
// 配置accessKey和secretKey
StaticSessionCredentialsProvider sscProvider = new StaticSessionCredentialsProvider(accessKey, secretKey);
ClientConfiguration config = ClientConfiguration.newBuilder()
.setEndpoints(endpoints)
.setRequestTimeout(Duration.ofSeconds(requestTimeout))
.setCredentialProvider(sscProvider)
.enableSsl(enableSsl)
.build();
// 设置生产者
Producer producer = provider.newProducerBuilder()
.setTopics(topic)
.setClientConfiguration(config)
.build();
// 设置普通消息
Message message = provider.newMessageBuilder()
.setTopic(topic)
.setBody(messageData.getBytes(StandardCharsets.UTF_8))
.build();
// 获取发送消息的结果
SendReceipt sendReceipt = producer.send(message);
log.info("发送消息的结果:{}",sendReceipt.toString());
}catch(Exception e){
log.error("发送消息出现异常:{}",e.toString());
}
}
Producer producer = provider.newProducerBuilder().setTopics(topic).setClientConfiguration(config).build();
确保endpoints配置正确,应指向您的RocketMQ服务实际地址。
accessKey与secretKey需有效,且具有向指定topic发送消息的权限。
请求超时时间requestTimeout设置合理,避免因网络延迟导致的建立连接超时。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/