首页 > 其他分享 >RocketMQ - 生产者最佳实践总结

RocketMQ - 生产者最佳实践总结

时间:2023-02-22 09:34:35浏览次数:36  
标签:总结 场景 生产者 send 发送 消息 Message RocketMQ

相对消费者而言,生产者的使用更加简单,一般关注消息类型、消息发送方法和发送参数,即可正常使用RocketMQ发送消息

常用消息类型

消息类型 优点 缺 点 备注
普通消息(并发消息) 性能最好。单机TPS的级别为100 000 消息的生产和消费都无序 大部分场景适用
分区有序消息 单分区中消息有序,单机发送TPS万级别 单点问题。如果Broker宕机,则会导致发送失败 大部分有序消息场景适用
全局有序消息 类似传统的 Queue,全部消息有序,单机发送TPS千级别 单点问题。如果Broker宕机,则会导致发送失败 极少场景使用
延迟消息 RocketMO自身支持,不需要额外使用组件,支持延迟特性 不能根据任意时间延迟,使用范围受限。Broker 随着延迟级别增大支持越多,CPU压力越大,延迟时间不准确 非精确、延迟级别不多的场景,非常方便使用
事务消息 RocketMO自身支持,不需要额外使用组建支持事务特性 RocketMO事务是生产者事务,只有生产者参与,如果消费者处理失败则事务失效 简单事务处理可以使用

常用的发送方法

发送方法 优点 缺 点 备注
send(Message msg)
同步发送
最可靠 性能最低 适用于高可靠场景
send(SendCallback sendCallback)
异步发送
可靠,性能最高 如果发送失败,就需要考虑如何降级 大部分业务场景
send(Message msg,MessageQueue mq)
指定队列发送
可以发送顺序消息 单点故障后不可用 适用于顺序消息
send(Message msg,MessageQueueSelectorselector, Object arg)
执行队列发送
队列选择方法最灵活 比较低级的接口,使用有门槛 特殊场景
sendOneway(Message msg)
单向发送
使用最方便 消息有丢失风险 适用于对消息丢失不敏感的场景
send(Collection msgs)
批量发送
效率最高 发送失败后降级比较困难 适用于特殊场景

常用参数

参数名 含义 备注
producerGroup 生产者组 必须传入的参数
compressMsgBodyOverHowmuch 消息体数量超过该值则压缩消息
instanceName 生产者实例名
maxMessageSize 消息体的最大值 默认为4MB,也可以单独设置
retryTimesWhenSendAsyncFailed 异步发送失败的重试次数
retryTimesWhenSendFailed 同步发送失败的重试次数
sendMsgTimeout 发送超时时间 网络层的超时时间

标签:总结,场景,生产者,send,发送,消息,Message,RocketMQ
From: https://www.cnblogs.com/vipsoft/p/17137156.html

相关文章

  • 今日总结(对周一的软件工程进行总结)
    课上,老师把学习编程和学习游泳结合起来,我个人觉得还是比较生动的。王建民老师说软件工程这门课正常的教学方式和在企业工作是背道而驰的,学习的目的就是为了去干活,所以采用......
  • 第一周学习总结(02.21)
    这一周主要学习了python爬虫,主要是列表,元组,函数,文件操作,异常处理和爬虫基本概念的学习,除此之外还学习了一点xml。列表:[],列表可以存储混合类型,for循环遍历输出,以及列表的增......
  • 2月21日总结
    代码量:0行今日是写总结的第二天。今日上午上了5节课,下午上了2节课。剩下的下午和晚上的时间本事可以用来写代码的,但是我今日的代码量为0行,原因是什么呢?我用这些时间干什......
  • #yyds干货盘点#【愚公系列】2023年02月 .NET/C#知识点-List对象去重的方法总结
    前言数组去重其实是个很常见的面试题,比如在数据分析中,有时候因为一些原因会有重复的记录,因此需要去重。如果重复的那些行是每一列懂相同的,删除多余的行只保留相同行中的一......
  • 今日总结
    今天构思了一下框架打卡APP阶段一三项功能主页面有三个功能按钮,注册,打卡和记事本每天打卡的数据储存到本地数据库每次再次打开app的时候,会自动执行将sqllite的数据存......
  • 助教工作总结
    一、助教工作的具体职责和任务1.我的职务是由杨雄老师指导之下的2019级毕业设计的助教。2.我的职责是:正确指引毕业生找到自己所要选的毕设课题、建起沟通毕业生和导师的......
  • 2023/2/20号周二总结
     今天上午满课,上了英语口语和数据库原理,下午是刘立嘉老师的python课,数据库原理课上老师讲述了一些mysql的知识。下午上完课之后出学校和室友一起在学校周边转了转,之后去......
  • Mybatis Plus 框架项目落地实践总结
    在使用了MybatisPlus框架进行项目重构之后,关于如何更好的利用Mybatisplus。在此做一些总结供大家参考。主要总结了以下这几个方面的实践。基础设计BaseEntity逻辑......
  • 2月21日每日总结
    今日学习了JavaScript相关内容的学习,今日学习的内容是变量和数据类型JavaScript是一门弱类型语言,变量可以存放不同类型的值变量名需要遵循如下规则:组成字符可以是任何字母......
  • 每日总结2
    今日关键词读取通过搜索,了解了ResultSet类的特性,并实现了利用ResultSet类完成了对数据库中的信息进行读取和显示的功能。了解了executeUpdate()方法和executeQuery()方法......