环境信息
canal version mysql version
问题描述
故事是这样的:我测试的时候创建了一个destination A监听数据库 db,然后创建了ES-adapter,然后我又创建了destination B 还是监听db,然后有一天A挂了,然后ES-adapter都去用B了,A就没用了 ,这情况正常吗,我看代码是根据数据库-表明作为key去查的,那不是没destination什么事情了。 (ES-Adapter那边)
原提问者GitHub用户bestzhao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在同时建立两个实例(destination)监听同一个数据库时,可能会出现问题。这是因为每个实例都会尝试与ZooKeeper中的一个服务器建立连接,如果ZooKeeper中存在多个实例,那么可能会出现竞争条件,导致数据库实例无法正确地获取。
如果出现问题,可能会导致以下情况之一:
实例无法正确地连接到ZooKeeper中的数据库服务器。 实例之间出现冲突,导致数据无法正确地同步。 实例之间无法协作,导致数据库操作无法正确地执行。 因此,在实际应用中,最好不要同时建立多个实例监听同一个数据库。如果必须这样做,请确保ZooKeeper中只存在一个实例,并且在每个实例中使用不同的数据库名称。
此外,您可以考虑使用分布式数据库技术,例如 Hadoop Distributed File System(HDFS)、Google File System(GFS)或者Amazon S3 等。这些技术可以在多个服务器之间分配数据存储和索引,以提高系统的可靠性和性能。