package com.cyzy.mqproducer.service; import org.apache.rocketmq.client.exception.MQBrokerException; import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.remoting.exception.RemotingException; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @Service public class MQProduceService { private DefaultMQProducer producer = null; @PostConstruct public void initProduce(){ producer = new DefaultMQProducer("defaultGroup"); producer.setNamesrvAddr("116.205.171.75:9876"); producer.setRetryTimesWhenSendFailed(3); producer.setSendMsgTimeout(60000); try{ producer.start(); } catch (MQClientException e) { e.printStackTrace(); } } @PreDestroy public void shutdownProduce() { if (producer != null) producer.shutdown(); } public boolean send(String topic,String tags,String content){ Message msg = new Message(topic,tags,"",content.getBytes()); try{ producer.send(msg); return true; } catch (MQClientException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (RemotingException e) { e.printStackTrace(); } catch (MQBrokerException e) { e.printStackTrace(); } return false; } }
时间: 2024-02-14 21:21:52 浏览: 114
这段代码是用于实现 RocketMQ 生产者的功能的。其中使用了 DefaultMQProducer 类作为生产者对象,设置了生产者的一些属性,如生产者组名、NameServer 地址、发送超时时间等。在 initProduce 方法中,启动了生产者。在 send 方法中,构造了 Message 对象,并将消息发送到指定的主题和标签。如果发送失败,则会抛出异常并返回 false。在 shutdownProduce 方法中,关闭生产者。
相关问题
Invalid bound statement (not found): com.cyzy.mqproducer.mapper.OrderMapper.insertOrderData
这是一个错误提示,可能是因为找不到名为 `com.cyzy.mqproducer.mapper.OrderMapper.insertOrderData` 的绑定语句。这通常是因为在 MyBatis 的 XML 配置文件中没有正确配置该语句所对应的 SQL 语句或者 ID 不正确。请检查你的代码和配置文件并确保语句 ID 和 SQL 语句都正确无误。
阅读全文