![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mq
风起尘落
我只需努力,剩下的交给时光。
展开
-
MQ如何避免消息堆积
产生原因:生产速率大于消费速率解决方式1.增加消费者节点2.消费者设置批量获取消息,减少网络传输的次数。rocketMq消费者设置:consumer.setConsumeMessageBatchMaxSize(10);//每次拉取10条原创 2022-03-01 21:28:05 · 350 阅读 · 1 评论 -
RocketMq broker,queue选择源码分析
1.启用broker故障延迟源码:public MessageQueue selectOneMessageQueue(final TopicPublishInfo tpInfo, final String lastBrokerName) { // 默认为false,代表不启用broker故障延迟 if (this.sendLatencyFaultEnable) { try { // 随机数且+1 .原创 2021-03-26 14:37:34 · 646 阅读 · 0 评论 -
rocketMq架构设计
原创 2021-03-26 14:32:17 · 103 阅读 · 0 评论 -
RocketMQ保证消息不丢失
分别从Producer发送机制、Broker的持久化机制,以及消费者的offSet机制来最大程度保证消息不易丢失从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失。 从Broker的视角来看:如果消息已经存在Broker里面了,如何保证不会丢失呢(宕机、磁盘崩溃) 从Consumer的视角来看:如果消息已经完成持久化了,但是Consumer取了,但是未消费成功且没有反馈,就是消息丢失从Producer分析:如何确保消息正确的发送到了Bro转载 2020-11-06 15:18:52 · 541 阅读 · 0 评论 -
mq要如何处理消息丢失、重复消费?
如果要你实现一个支付宝向余额宝转账的功能,比如:账户a从支付宝转出5000余额宝转入5000,该怎么做呢?可能有些人会说,这还不简单,直接上图支付宝先给账户a减5000,调用余额宝的接口给余额宝的账号b加5000。用这种方式正常情况下是可以的,如果出现以下问题该怎么办呢?调用余额宝api时网络失败了 调用余额宝api时网络超时了 如果余额宝api业务逻辑比较复杂,耗时比较长,用户需要长时间的等待才有结果,用户体验不好有人说:如果调用余额宝api时网络失败了,对接口进行重试不就可以解转载 2020-11-05 11:28:39 · 1903 阅读 · 0 评论