【TDengine 使用环境】生产环境
【TDengine 版本】3.3.6.13
【操作系统以及版本】openEuler22.03
【部署方式】容器
【集群节点数】6
【集群副本数】3
【描述业务影响】数据订阅主题创建后消费者会自动销毁,无法拉取订阅数据
【问题复现路径/shan】创建主题然后创建消费者
【遇到的问题:问题现象及影响】
主题创建语句:CREATE TOPIC IF NOT EXISTS hbny2_aalm_tbool202516 as select tbname,ts,v,tn,ta from hbny2.tbool where ta = ‘1’;
订阅使用文档中websocket连接语句
【报错完整截图】
13:39:51秒订阅成功


11/07 13:40:16.656750 00002218 C TQ ERROR consumer:0x36425cd40b4bf2c innerCommitAll failed, code:Invalid message
11/07 13:43:13.935725 00002218 C TQ INFO consumer:0x36425cd40b4bf2c start to unsubscribe consumer, status:2
我看到第二个截图,说表不存在,请检查表和topic是否正常 select * from information_schema.ins_topics \G;
后面有重建过topic,topc是正常的,重建topic之后表不存在的日志是有部分模块传参错误导致查询语句报错,未出现tq报表不存在
你重建topic之后,系统有没有重新进行consumer创建?
有重新创建消费者,但是成功一段时间后,消费者id挂不上,如图是null
你用的jdbc吗?看看是不是consumer关闭了
日志显示consumer从ready变为drop状态,但是客户端没有执行删除
补充一个从创建主题、消费者、开启订阅到订阅失败的日志。
consumer从ready变为dropped期间,客户端没有进行操作
去 mnode 的主节点上执行下 grep “subscribe request from” taosdlog.0 ,然后贴一下
连接器版本taos-jdbcdriver-3.7.3,使用webSocket连接
结合上个恢复的日志,补充下内容。
我们测试环境也是3.3.6.13的集群,区别是测试环境是4节点单副本(生产环境是6节点3副本),测试环境的订阅可以正常运行
taosdlog.0里搜不到完整的‘subscribe request from’
查阅了历史日志,生产环境最后一个相关日志是5号早上,之后订阅就开始出问题了
刚刚建了一个测试数据库,模拟了一次流程,刚建立订阅时
show consumers如下,consumerid存在但是offset和rows为空
一段时间后show consumers如下,consumerid变为null,consumer自己 drop了