问题一:RocketMQ快速失败机制有些疑惑能解答一下么?
最近在根据《RocketMQ实战》和《Apache RocketMQ 从入门到实战》学习RocketMQ,对书里提到的快速失败机制有些疑惑。
根据waitTimeMillsInSendQueue默认值200ms,若发送至队列中的消息超过200ms一直未被消费(比如消费者宕机),是否也会触发快速失败机制呢?
若是触发了快速失败,对于Producer发送这条消息的响应是成功的吗?
请问对于快速失败机制是否有更多的资料或者源码可以直接查看,实在是没有找到更多有用的资料,搜索来去依然指向了这两本书,还请不吝指教。
参考答案:
快速失败的请求都没被处理器处理 返回给客户端响应肯定是失败的,可以跟着书,读一读源码BrokerFastFailure这个类
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/600196
问题二:RocketMQ通过这个注解如何指定这个消费者消费这个主题下的某个队列?
通过这个注解如何指定这个消费者消费这个主题下的某个队列?
参考答案:
在RocketMQ中,消费者通过订阅特定的主题来消费消息。要指定消费者消费某个主题下的特定队列,可以在创建消费者实例时设置消费者的ConsumerGroup
,并在订阅主题时指定该ConsumerGroup
。
以下是使用Java编写的示例代码,展示了如何创建一个消费者并订阅特定主题下的特定队列:
```java
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.common.message.MessageConst;
public class MyConsumer {
public static voi
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/600183
问题三:rocketmq 单组节点单副本模式如何支持内外网?
rocketmq 单组节点单副本模式如何支持内外网?网上搜的broker.conf配置brokerip1和brokerip2好像不太行
参考答案:
试试修改顺序会不会好一些
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/600182
问题四:RocketMQ的疑问能解答一下么?
RocketMQ的疑问能解答一下么?就是这块代码,如果循环写入timelog中任何一条出错导致批次重写,感觉会导致重复的数量增大啊,是基于什么考虑的?
参考答案:
timerlog是一个类似跳表的结构,如果有写入失败的消息可能会导致这个跳表中断,前面的消息就会丢失。所以需要整个批次作重写,保证跳表是完整的。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/600181
问题五:RocketMQ是不是应该校验下对应的定时消息是否在时间轮中可能误发,或者当时定时消息已经投递?
RocketMQ是不是应该校验下对应的定时消息是否在时间轮中可能误发,或者当时定时消息已经投递?
参考答案:
确实,这个地方的计数逻辑没考虑到待删除消息不存在的情况。不过这个地方作校验有些困难,因为定时消息仅保存索引,每次删除消息都回查会带来冷读开销。
可能需要在真正执行删除的时候作补偿。
定时消息已经投递的场景,发送取消定时消息的逻辑是不会造成问题的。因为投递代表当前时间已经大于投递时间,这个时候发送的取消定时消息会返回WHEEL_TIMER_MSG_ILLEGAL。
关于本问题的更多回答可点击进行查看: