【TDengine 使用环境】 测试环境
生产环境 /测试/ Poc/预生产环境
【TDengine 版本】 OSS 3.3.8.8
【操作系统以及版本】 linux
【部署方式】容器
【集群节点数】1
【集群副本数】1
【描述业务影响】
【问题复现路径/shan】
1、同一个服务器,部署两个td的docker,端口和数据地址映射都不同
2、两个td采用同样的建库建表脚本
3、从A docker通过TMQ订阅数据,当有数据写入时,程序读取数据后写入B docker
4、无法写入,一直报错
【遇到的问题:问题现象及影响】
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
这个报错的意思是,在 B docker 的 energy_storage 库里面,其他超级表下面存在名称为 analog_10000000005 的表。
报错看懂了,但是确定库是空的,只有建好的超表,没有任何一张子表
所以是不是两个docker的bug?读到A docker里的子表去了,导致冲突
有可能,你需要排查一下,最好的判断方法是:两边使用不同的账号密码。
我的意思是是不是docker部署两个td本身产生的bug,代码里源和目的docker是确定分开的,不是编码问题。
目前未发现类似的问题。
你的两个docker 中的 taosd 的 fqdn 是否进行了区分?
用的是原生taos_connect函数进行连接的,从docker A 用tmq订阅数据更新,然后再通过代码写入docker B中的td,读取数据没有问题,写入的时候就一直报错
你在连 docker B后,查询一下集群信息,确认连接是正确的。
集群连接是正确的,我又把docker B中的子表改成跟A中完全不同名的子表,也无法写入,但是报错信息改为了“Retry needed”