RocketMq使用规范(纯技术和实战建议)

会有一个针对消费组创建重试队列,当消费失败后会放入重试队列,后续消息周期间隔性消费是通过重试队列实现的,达到最大次数会放入死信队列。会自动进行消息重试,达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息。同步发送指消息发出后,会阻塞工作线程,直致成功,或者失败返回。1可以解决重复消费的问题但是会丢失消息(不可靠),2会导制消息重复(可靠),得去从幂等。同步刷盘数据可靠性更高,主要是防止异常断电消息丢失,但消息发送效率不高。没有做到,本质上还是拉取,仅是拉取的频率高,近似推送。
摘要由CSDN通过智能技术生成

概述:

  1. 使用规范主要从,生产可靠性、和消费为轴线定义使用规范;
  2. kafka使用核心:削峰解耦、向下游并行广播通知(无可靠性保证)和分布式事务,本规范仅从削峰解耦、向下游并行广播通知论述;

1、可靠性(强制)

可靠性包括Producer发送消息机制的可靠性,RocketMQ Server(Broker)消息持久化刷盘机制和Broker主从节点消息同步机制,Consumer消息的消费机制。

1.1、Producer发送消息的可靠性:

1.1.1、核心参数设置:

生产端(Producer):

  1. sendMsgTimeout:消息发送超时时长,默认:3000,单位毫秒;
  2. retryTimesWhenSendFailed:同步发送重试次数,默认:2;
  3. retryTimesWhenSendAsyncFailed:异步发送重试次数,默认:2;
  4. compressMsgBodyOverHowmuc:消息body需要压缩的阈值,默认:4K;
  5. maxMessageSize:客户端验证,允许发送的最大消息体大小,默认:4M;

注:

  1. rocketmq 的 client 端及 broker 端均有对消息体大小是否超出 maxMessageSize 进行校验;
  2. client 端的 DefaultMQProducer 定义了 maxMessageSize,默认是 4M 大小;
  3. send 方法及 batch 方法都会校验消息的大小;
  4. 服务端 conf/broker.conf 可以指定 maxMessageSize 大小,如果需要修改 maxMessageSize 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值