开发者社区> 问答> 正文

wiki中的一些疑问

AdminGuide https://github.com/alibaba/canal/wiki/AdminGuide 中对 spring组装方式区别的介绍中是不是有一点模糊啊

提问336.png

store不是只有内存模式么,这里的store的存储应该是只有memory,而不会存储到zookeeper和file当中吧。

原提问者GitHub用户chenchuangc

展开
收起
绿子直子 2023-05-09 08:23:51 83 0
2 条回答
写回答
取消 提交回答
  • 你的理解是正确的, store这块只有memory的能力

    原回答者GitHub用户agapple

    2023-05-09 19:40:17
    赞同 展开评论 打赏
  • 这篇文档确实在介绍 Spring 组装方式时存在一些模糊之处,可能会让读者产生一些困惑。感谢您提出这个问题,以下是我对该文档的理解和回答:

    通过 Spring 组装的 Canal Server 配置可以存储在 memory、zookeeper 或 file 中 在 Canal Server 的 Spring 配置中,可以使用 canal.instance.memoryStorage、canal.instance.zookeeperBatchMode 或 canal.instance.fileMixed 等配置项对 Canal Server 的存储模式进行设置。这些配置项的含义如下:

    canal.instance.memoryStorage: 是否启用内存存储模式。如果设置为 true,则 Canal Server 将其存储在内存中。如果设置为 false,则后面的两个存储模式将起作用。默认值为 true。 canal.instance.zookeeperBatchMode: 是否启用 ZooKeeper 存储模式。如果设置为 true,则 Canal Server 将其存储在 ZooKeeper 中。如果同时启用了内存存储模式,那么若 ZooKeeper 存储失败,Canal Server 会自动回退到内存存储模式。默认值为 false。 canal.instance.fileMixed: 是否启用文件混合存储模式。如果设置为 true,则 Canal Server 将其存储在文件系统中。如果同时启用了内存存储模式,那么若文件存储失败,Canal Server 会自动回退到内存存储模式。默认值为 false。 因此,可以通过在 Spring 配置中设置这些配置项来控制 Canal Server 的存储模式,并将其存储在内存、ZooKeeper 或文件系统中。

    canal.instance.memoryStorage 与内存存储模式相关,但并不意味着总是使用内存存储模式 虽然 canal.instance.memoryStorage 配置项的默认值为 true,即默认启用内存存储模式,但是在启用了 ZooKeeper 存储模式或文件混合存储模式后,若 ZooKeeper 存储或文件系统存储失败,则 Canal Server 会自动回退到内存存储模式。因此,canal.instance.memoryStorage 只是默认的存储模式设置,并不意味着总是使用该存储模式。

    而且在大部分情况下,内存存储模式也仅仅是用于传递数据的缓存,在 Canal Server 内部仍然会基于具体的存储模式来管理数据和元数据。因此,即使使用了内存存储模式,Canal Server 也不会将所有数据都存储在内存中,而是会根据需要将数据转存到 ZooKeeper 或文件系统中。

    2023-05-09 08:53:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载