1.消息队列中, 我想针对队列中待发消息做一个不发送操作, 现有的做法是 在消费者端从队列中获取到消息后, 查询数据库看这条消息的状态是否能发送, 否则就不发, 这样有一个问题是取到每条消息都要去查询一遍数据库才能决定推不推送, 有没有更优的方法
2.消息队列使用的是 阿里云 rocketMq
15 回答8.4k 阅读
7 回答5.2k 阅读
6 回答6.9k 阅读✓ 已解决
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
能否考虑将不发送的消息ID一次获取存放在临时的
map
中,这样每次只需要map.constains
,减少了DB交互,但是可能会有内存方面的问题,如果这个数据量不大可以考虑这么做。如果数据量较大,可以提前将不发送的消息放入缓存,查缓存效率相对高不少