一、调整消息发送频率
- 引入发送间隔
- 在代码中,可以通过添加延迟来控制消息的发送频率。例如,使用
Thread.sleep()
在每次发送消息后暂停一段时间: try {
// 发送消息的代码
rocketMQTemplate.syncSend(registrationMqConfig.getTopic(), registrationMqConfig.getTag(), dto, null);
// 暂停一段时间,例如 100 毫秒
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
- 根据实际情况调整
Thread.sleep()
的时间参数,找到一个合适的发送间隔,既能满足业务需求,又不会导致请求过多异常。
- 批量发送消息
- 而不是每次发送一条消息,可以将多条消息收集起来,然后一次性批量发送。这样可以减少与服务器的交互次数:
List<YourMessageObject> messageList = new ArrayList<>();
// 收集消息
messageList.add(message1);
messageList.add(message2);
// 批量发送
rocketMQTemplate.syncSendBatch(registrationMqConfig.getTopic(), registrationMqConfig.getTag(), messageList, null)