SymmetricDS文件同步

官方文档:http://www.symmetricds.org/doc/3.11/html/user-guide.html#_file_synchronization

 

文件同步

SymmetricDS不仅支持数据库表的同步,而且还支持文件和文件夹从一个节点到另一节点的同步。

6.7.1。文件同步概述

文件同步功能包括:
  • 监视一个或多个文件系统目录位置的文件和文件夹更改

  • 支持同步与源目录不同的目标目录

  • 使用通配符表达式来“包含”或“排除”文件

  • 选择是否递归到受监视目录的子文件夹

  • 使用现有的SymmetricDS路由器基于文件和目录元数据对目标节点进行子集化

  • 能够指定在创建,删除或修改时是否同步文件

  • 能够指定监视文件系统更改的频率

  • 通过将文件复制到其源位置之前或之后运行的脚本来扩展文件同步的能力

  • 支持双向文件同步

  • 像数据库同步一样,文件同步是在一系列数据库表中配置的。该配置被设计为类似于数据库同步,以保持一致性并为数据库同步用户提供熟悉的感觉。

对于数据库同步,SymmetricDS使用表触发器配置哪些表将捕获数据进行同步,而路由器则指定哪些节点将成为数据更改的源,以及哪些节点将接收数据更改。 表路由将触发器链接到路由器。

同样,对于文件同步,SymmetricDS使用文件触发器来指定要监视的基本目录。文件触发器中的每个条目都指定一个基本目录来监视源系统上的更改。文件触发器上的列 提供了其他设置,用于选择要监视的基本目录中的特定文件以及是否递归到子目录等。文件触发器使用链接到路由器,文件路由文件触发路由器不仅链接源节点组和目标节点组,而且还可以选择覆盖目标服务器上的基本目录名称。文件路由 还提供一个标志,该标志指示在SymmetricDS的初始加载过程中是否应使用源节点的文件为目标节点添加种子。

  文件同步确实需要数据库来获取有关同步方案的运行时信息。文件触发器还需要链接到适当的路由器,例如表触发器,以完成设置。
  如果您没有可用于支持文件同步的关系数据库,则H2数据库可以很好地用作小型轻量级数据库来支持文件同步运行时信息。

6.7.2。文件同步如何工作

文件同步的配置不仅类似于数据库同步,而且其运行方式也非常相似。通过跟踪文件系统更改的后台作业来监视文件系统的更改(这与同步数据库更改时使用触发器来监视更改的操作并行)。检测到更改后,会将其写入 FILE_SNAPSHOT表。文件快照表表示受监视文件的最新已知状态。文件快照表上已自动安装了SymmetricDS数据库触发器,因此,更新后,SymmetricDS会在名为filesync的内部通道上捕获更改。

然后,由文件同步专用路由器FILE_SNAPSHOT的更改进行路由和批处理,该路由器根据文件路由配置委派给已配置的路由器文件同步路由器可以根据快照表的列数据(包含文件属性,例如名称,路径,大小和最后修改时间)的列来做出路由决策。新旧文件快照数据也都可用。路由器可以例如解析文件的路径或名称,并将其用作要路由到的节点ID。

批次的文件快照更改存储在OUTGOING_BATCH的filesync通道中现有的SymmetricDS拉和推作业将忽略文件同步通道。相反,它们由特定于文件同步的推入和拉出作业处理。这些作业,文件同步跟踪器,文件同步拉和文件同步推在默认情况下处于关闭状态。必须先启动它们,然后才能处理任何更改。

传输数据时,文件同步推和拉作业基于批处理的快照数据动态构建一个zip文件。压缩文件包含每个批次的目录。目录名称是batch_id。生成sync.bsh Bean Shell脚本并将其放置在每个批处理目录的根目录中。Bean Shell脚本包含用于从目标节点上的登台目录中提取的zip中的文件目标位置复制或删除文件的命令。如果是拉动,则下载zip文件;如果是拉动,则将其作为HTTP多部分附件上传。发送的zip文件是从发送的登台目录写入并传输的。传入的zip文件通过源节点ID在filesync_incoming的登台目录中登台。在每次后续传送文件之前,都会清除filesync_incoming / {node_id}登台目录。

批处理的确认与在数据库同步中进行确认的方式相同。客户端在文件推入或拉出过程中以确认的形式响应。

posted @ 2020-05-19 10:48  士官长  阅读(569)  评论(0编辑  收藏  举报