RocketMQ最佳实战
RocketMQ 客户端最佳实践
1. Producer最佳实践
发送消息注意事项
1). 一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置。
2). 消息发送成功或者失败,要打印消息日志,务必要打印sendresult和key字段。
SEND_OK,消息发送成功。
3). 对于消息不可丢失应用,务必要有消息重发机制,例如如果消息发送失败,存储到数据库,能有定时程序尝试重发,或者人工触发重发。
2. 消息发送失败如何处理:
1).重试
2).如果调用send同步方法发送失败,则尝试将消息存储到db,由后台线程定时重试,保证消息一定到达Broker。
3.Consumer 最佳实践
1). 消费过程要做到幂等
RocketMQ目前无法避免消息重复,所以如果业务对消费重复非常敏感,务必要在业务层面去重,有以下几种去重方式:
a).将消息的唯一键,可以是msgId,也可以是消息内容中的唯一标识字段,例如订单Id等,消费之前判断是否在Db或Tair(全局KV存储)中存在,如果不存在则插入,并消费,否则跳过。
b). 用业务层面的状态机去重。
2). 提高消费并行度
a). 同一个ConsumerGroup下,通过增加Consumer实例数量来提高并行度,超过订阅队列数的Consumer实例无效。可以通过加机器,或者在已有机器启动多个进程的方式。
b). 提高单个Consumer的消费并行线程,通过修改以下参数: consumeThreadMin consumeThreadMax
3). 消息批量消费
4). 跳过非重要消息
5). 优化每条消息消费过程
转载于:https://www.cnblogs.com/Jtianlin/p/8653034.html
RocketMQ最佳实战相关推荐
- 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三)
基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三) 转载于:https://github.com/Meowv/Blog 本篇继续围绕抓取完成后的操作做一个提醒. ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(二)
基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(二) 转载于:https://github.com/Meowv/Blog 本篇继续来完成一个全网各大平台的热点新闻 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(一)
基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(一) 转载于:https://github.com/Meowv/Blog 本篇主要围绕定时任务和数据抓取相关的知识 ...
- mysql 5.6 使用ssl_MySQL 5.6--------SSL连接最佳实战
MySQL 5.6--------SSL连接最佳实战 https://blog.csdn.net/weixin_33670786/article/details/89776706 mysql -uro ...
- SLS机器学习最佳实战:批量时序异常检测
0.文章系列链接 SLS机器学习介绍(01):时序统计建模 SLS机器学习介绍(02):时序聚类建模 SLS机器学习介绍(03):时序异常检测建模 SLS机器学习介绍(04):规则模式挖掘 SLS机器 ...
- SLS机器学习最佳实战:日志聚类+异常告警
0.文章系列链接 SLS机器学习介绍(01):时序统计建模 SLS机器学习介绍(02):时序聚类建模 SLS机器学习介绍(03):时序异常检测建模 SLS机器学习介绍(04):规则模式挖掘 SLS机器 ...
- 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础
本节书摘来自异步社区<精通软件性能测试与LoadRunner最佳实战>一书中的第1章1.1节软件测试基础,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区& ...
- MySQL 5.7--------多实例部署最佳实战
MySQL 5.7--------多实例部署最佳实战 安装之前关闭linux防火墙:centos6和7是不一样的!!!!!! CentOS 6.5关闭防火墙 1 2 [root@localho ...
- Restful-API设计最佳实战--Django播客系统(五)
Restful-API设计最佳实战–Django播客系统(五) 文章目录 Restful-API设计最佳实战--Django播客系统(五) RESTFul 1.协议 2.HTTP方法 3.使用名称 4 ...
最新文章
- Docker 集群 图形化显示 Visualizer
- Linux环境变量配置
- numpy.random详解
- Anaconda详细安装及安装Scrapy框架
- rank(),允许并列名次、复制名次自动空缺,结果如12245558……
- TXT文本文件中批量替代回车符号
- 2018年最新_5小时学会微信小程序视频教程网盘地址
- Python 用sympy做高数题,不定积分、定积分、极限、求导样样精通!
- 计算机考研考心理学,跨专业考研心理学研究生好考吗
- 微商潮牌怎么引流?成功的人不是赢在起跑点
- Linux文件许可权764意味着,chmod 777意味着什么
- Linux(五)Linux远程连接管理工具xftp,xshell使用
- 键盘钢琴软件v1.0.1.0官方pc版
- Git版本控制管理——Git和GitHub
- Mac-修改MySQL密码
- java 电子围栏_怎么画电子围栏,并进行电子围栏进出判断?
- 如何处理RuntimeError: _cdist_backward requires X1(X2) to be contiguous
- 数据结构《职工管理系统》
- AD 便捷键 通信接口定义
- 端午节特别活动 | 在 Python 中制作端午节游戏