同一服务器两个docker之间同步数据,无法写入

【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 是否进行了区分?

是不同的fqdn

那只能分析你的应用,看是如何连接的数据库。

用的是原生taos_connect函数进行连接的,从docker A 用tmq订阅数据更新,然后再通过代码写入docker B中的td,读取数据没有问题,写入的时候就一直报错

你在连 docker B后,查询一下集群信息,确认连接是正确的。

集群连接是正确的,我又把docker B中的子表改成跟A中完全不同名的子表,也无法写入,但是报错信息改为了“Retry needed”

看下应用端的日志 taoslog*.*