使用rocketmq-client-java发不了消息

使用的是如下代码发送消息,调试时发现代码一直停留在
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());
    }
}

展开
收起
雪候鸟666 2024-09-12 21:27:05 76 发布于湖北 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长
    Producer producer = provider.newProducerBuilder().setTopics(topic).setClientConfiguration(config).build();
    

    确保endpoints配置正确,应指向您的RocketMQ服务实际地址。
    accessKey与secretKey需有效,且具有向指定topic发送消息的权限。
    请求超时时间requestTimeout设置合理,避免因网络延迟导致的建立连接超时。

    2024-09-13 13:34:07 举报
    赞同 304 展开评论

    评论

问答分类:

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

热门讨论

热门文章

还有其他疑问?
咨询AI助理