我目前正在审核SVN部署同步器功能,并想知道是否有办法让一个ESB实例以从属方式配置,定期检查SVN存储库,而该实例不是群集的一部分?
我的测试显示,即使此ESB不在群集中,从属ESB也会对SVN存储库进行任何更改并在服务器上启动必要的部署/取消部署。
但是,似乎在运行时调用从站的SVN同步的唯一机制是来自管理节点的集群消息。
我希望有另一种方法可以远程连接这个同步过程,如果可能的话。有人知道吗?
答案 0 :(得分:0)
根据需要进行Dep-Sync更新,不进行轮询。
当从节点获得由管理器节点发送的特定群集消息时,它将执行签出。为了接收这些消息,所有节点应该在同一个集群上。
如果在发送群集消息时群集上的特定节点处于非活动状态(尚未启动),则会错过该更新。为了克服这个问题,每台服务器都会在服务器启动时更新其repo。
AFAIK,不建议在没有群集环境的情况下使用Dep-Sync。因此,如果您的节点不在同一个集群中,则需要重新启动其他服务器以进行更新。
当您进行群集设置时,自然需要Dep-Sync。
HTH,
DarRay
答案 1 :(得分:0)
SVN存储库在基于SVN的DepSync内部使用,并且主要与svn checkout / commit / update操作同步。在工作站/从属节点上定期进行SVN更新会对SVN服务器造成很大的性能损失。想象一下,每个租户每20秒就会有20个工作节点更新。因此,当管理器节点中的工件发生更改时,工作节点仅更新其存储库。我们使用集群消息在经理和员工之间进行通信,因此我们需要为此设置集群。
但是,如果您使用的是基于SVN的Deployment Synchronizer,则可以以与平台相关的方式实现您的要求。在Linux中,您可以安排cron job来安排任务。因此,您可以创建一个定期更新工作节点的cron作业。在cron作业之后每隔一分钟更新一次存储库。
*/1 * * * * /home/kasun/update-wso2-worker-repos.sh
-
$ cat /home/kasun/update-wso2-worker-repos.sh
#!/bin/sh
svn update $CARBON_HOME/repository/deployment/server
svn update $CARBON_HOME/repository/tenants/*