之前测试发送消息的时候一直感觉消费者监听器接收消息有延迟或者漏消息,于是百度半天,终于弄好了rocketMQ的console,但是进入控制台可以看到所有消息都被消费了,但是手机这边就是有很多消息漏掉。请教了前辈大佬,结果被怼了一顿,想想也是,作为新人入职最好别问低级问题。前辈指点我弄清楚广播模式和集群模式的区别,于是我又找了半天,终于发现项目里配置的是集群模式
这是我开的定时任务,用于测试
这是连接控制台的时候踩的另一个坑,除了namesrvAddr要配置以为,这里还要设置VIP为false
接下来是最大的坑,也怪我之前不懂rocketMQ消费者的区别导致卡了很久,其实很简单
这里直接粘贴复制网上的解释
广播消费指的是:一条消息被多个consumer消费,即使这些consumer属于同一个ConsumerGroup,消息也会被ConsumerGroup中的每个Consumer都消费一次,广播消费中ConsumerGroup概念可以认为在消息划分方面无意义。
在CORBA Notification规范中,消费方式都属于广播消费。
在JMS规范中,相当于JMS publish/subscribe model
集群消费模式:一个ConsumerGroup中的Consumer实例平均分摊消费消息。例如某个Topic有9条消息,其中一个ConsumerGroup有3个实例(可能是3个进程,或者3台机器),那么每个实例只消费其中部分,消费完的消息不能被其他实例消费。
在CORBA Notification规范中,无此消费方式。
在JMS规范中,JMS point-to-point model与之类似,但是RocketMQ的集群消费功能大等于PTP模型。因为RocketMQ单个ConsumerGroup内的消费者类似于PTP,但是一个Topic/Queue可以被多个ConsumerGroup消费。