~~微服务 RocketMQ-延时消息 消息过滤 管控台搜索问题~~
RocketMQ-延时消息
给消息设置延时时间,到一定时间,消费者才能消费的到,中间件内部通过每秒钟扫描,判断是否到达要求时间
现在RocketMq并不支持任意时间的延时,需要设置几个固定的延时等级,从1s到2h分别对应着等级1到18"1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h";
但这是默认的,我们可以修改


想修改可以去rocketmq的conf文件夹,修改broker.conf配置参数
该时间是指消息在中间件里面存储的时间
实现延时消息
消费者类:
public class Consumer {
public static void main(String[] args) throws Exception {
//定义消息消费者(在同一个JVM中,消费者的组名不能重复)
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("helloConsumerGroup");
//设置nameServer地址
consumer.setNamesrvAddr("43.143.161.59:9876");
//设置订阅的主题
consumer.subscribe("helloTopic","*");
//设置消息的监听器
consumer.setMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
for(MessageExt msg:list){
String s = new String(msg.getBody(), Charset.defaultCharset());
System.out.println("消息消费时间:"+new Date()+",消息的内容:"+s);
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
//启动消费者
consumer.start();
}
}
生产者类:
public class Producer {
public static void main(String[] args) throws Exception {
//定义一个生产者对象
DefaultMQProducer producer = new DefaultMQProducer("helloGroup");
//连接nameServer

最低0.47元/天 解锁文章
2979

被折叠的 条评论
为什么被折叠?



