RocketMQ问题排查思路
1、使用HTTP协议报错500。排查思路:
1). 是不是有tcp的producer在发送。
2). 是不是有大量的非法字符。建议单独建一个topic给http,然后再进行测试。
2、报没有权限:
1). 如果是主账号:确保GID和topic都是主账号创建;
2). 如果是子账号:确保GID是子账号创建,并且topic授权这个ak使用。
3.学会查看日志:
ons.log日志保存路径:/{user.home}/logs/ons.log,其中{user.home}是指启动当前 Java 进程的用户的根目录
4.消息订阅类问题分析思路
1). 先看下程序是否正常运行,如有异常排查日志。如正常运行,检查消费端的消息堆积和订阅关系。如订阅关系不一致,纠正。如有堆积,看具体哪个消费端堆积,可以看堆栈及打jstack来分析。https://help.aliyun.com/knowledge_detail/54347.html
2). 消息接收不到,查看消息ID,通过消息查询去判断消息是否接收,如果显示”至少订阅一次“说明消息肯定被订阅到了,如果消息轨迹看不到,应该是消息轨迹公测存在一定的缺陷,以消息查询结果为准。
5.不保证消息一定不重复,但是保证消息一定不丢失。
6.事务消息会回查频率5秒一次
7..net仅支持Windows系统
8.消息验证中Tag是不生效的。
9.删除监控警报需要在所有账号下进行查看。
10.产品不建议再做二次封装,本身.net SDK的兼容性就不是太好。如果是一定要封装,请先使用SDK测试调通了再进行封装。务必使用64位的方式封装。
- .net TCP协议开发,程序必须编译为64位,才能够调用,32位不支持
12.一个CID在消费的时候不管多少个进程、线程、机器,只能用一个tag,否则就会导致消息被不可预期的过滤掉。
13.客户端堆积的是指一次都未消费的堆积消息量,不包含重试的消息。另外报警必须保证消费端在线。
- topic的消息类型为顺序消息,则不支持定时/延时消息和事务消息。
15.主账号授权给主账号只能通过STS
16.使用老版本的默认实例会导致发送错误,需要修改NAMESER_ADDR。
17..net中文乱码问题:
添加编码解码类:
/// 编码解码测试类 /// </summary> public class base6tstring { public static string ToBase64String(string value) { if (value == null || value == "") { return ""; } byte[] bytes = Encoding.UTF8.GetBytes(value); return Convert.ToBase64String(bytes); } public static string UnBase64String(string value) { if (value == null || value == "") { return ""; } byte[] bytes = Convert.FromBase64String(value); return Encoding.UTF8.GetString(bytes); }
}
发送:
string myString = "Example message body测试"; myString = base6tstring.ToBase64String(myString); Message msg = new Message(factoryInfo.getPublishTopics(), "tagA", myString);
接收:
Byte[] text = Encoding.Default.GetBytes(value.getBody()); string s = System.Text.Encoding.UTF8.GetString(text, 0, text.Length); Console.WriteLine(base6tstring.UnBase64String(s)); return ons.Action.CommitMessage;
18.当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者客户端宕机,导致服务端对客户端应答失败。 如果此时生产者意识到消息发送失败并尝试再次发送消息,消费者后续会收到两条内容相同并且 Message ID 也相同的消息。
https://help.aliyun.com/document_detail/44397.html
消息重复消费的问题,在互联网场景下,无法规避,用户需要自行做幂等处理。
19.报错(The receipt handle you provided has expired.)消息被客户端获取到后,拿到的句柄没有在message.NextConsumeTime前删除,会报这个错误,一般来说是因为消费消息过慢导致的
20.net sdk也有消费端的ons.log日志,如果遇到错误需要提工单,这个也可以打包提供下。
// 设置日志路径
factoryInfo.setFactoryProperty(ONSFactoryProperty.LogPath, "C://log");
21.接入点是有自动路由机制:
1). 默认的实例是全局唯一的,这样系统根据默认实例的topic能自动路由到正确的接入地址
2). 默认的实例的topic即便接入点配置的不对,也可以找到正确的接入地址的
3). 新建的实例不行,新建实例是咱们改版后的部署模型,支持不同实例之间可以有同名的topic,这个时候必须指定对接入点地址
22.至于osPageCacheBusyTimeOutMills,目前只有铂金版的才支持调整的。标准版本建议catch重试发送。
23.使用管控API查询消息或者死信消息是被BASE64加密的,代码获取需要解密。
final BASE64Decoder decoder = new BASE64Decoder();
System.out.println(new String(decoder.decodeBuffer(response.getData().getBody()), "UTF-8"));
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【阿里云一周要闻第二期】杭州云栖大会敲定,9月正式揭幕;MIT官方点名阿里云是全球最聪明的公司之一;阿里AI再出神器,“你是什么垃圾”一拍便...
---------------------------------【一周要闻】--------------------------------- 杭州云栖大会【阅读详情】 作为开发者领域的第一科技盛会,杭州云栖大会Apsara Conference将于今年9月25日在杭州云栖小镇开幕。大会将继续探索人类科技演进的脉搏,面向未来20年展示基础科学、创新性技术和应用的重大突破。大会官网已经露出了部分其中包括与人工智能比拼的游戏项目。吐槽大会辩手还将举办首届工程师吐槽大会。 阿里AI再出神器,“你是什么垃圾”一拍便知【阅读详情】 相信魔都的小伙伴已经要被垃圾分类逼疯了,面临灵魂拷问:“你是什么垃圾?”不用担心,想人之所想,急人之所急,阿里AI懂你。经过阿里志愿者48小时紧急开发,AI智能识别垃圾功能(测试版)在手机淘宝上线,这款功能通过阿里云搭
- 下一篇
springcloud vue 微服务分布式 activiti工作流 前后分离 集成代码生成器 shiro权限
代码介绍 ------------------------------------------------------------------------------------------- 本商品为 :springcloud + Springboot 微服务分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + mybaits + maven + json 接口 前端页面 :html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 特别注意 :前端用的vue.js, 就是html页面引入vue.js形式, 用tomcat部署运行,更适合后台开发者 手机功能 :IM、工作流任务管理审批,站内信,上传头像,修改资料,好友管理 等 核心技术 ------------------------------------------------------------------------...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案