`
leign
  • 浏览: 166684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分发还是同步

阅读更多
数据分发还是同步

最近需要将一些文件从一台server备份到另一台server上(刷新新的数据到正式机上)

是根据刷新操作触发自动同步? 还是主动推(分发)过去?
想了想,觉得比较合理的解决还是看需要备份的数据量,如果是大规模的文件,为了提高效率,还是主动一点吧,推过去。 小批量文件,则还是可以被动同步。

用哪种方式
1、scp/sftp(SHH2)
可以使用http://www.ganymed.ethz.ch/ssh2/提供的jar包中的API,可以调用其接口进行基于SSH的连接,实现执行远程命令

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.SFTPv3Client;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;


public class SCPTest {

	public static void main(String[] args)
	{
		String user = "root";
		String pass = "*****";
		String host = "remoteIP";
		
		Connection con = new Connection(host);
		try {
			con.connect();
			boolean isAuthed = con.authenticateWithPassword(user, pass);
			System.out.println("isAuthed===="+isAuthed);
			
			
			SCPClient scpClient = con.createSCPClient();
			scpClient.put("localFiles", "remoteDirectory");	//从本地复制文件到远程目录
			scpClient.get("remoteFiles","localDirectory");	//从远程获取文件
			
			
			SFTPv3Client sftpClient = new SFTPv3Client(con);
			sftpClient.mkdir("newRemoteDir", 6);	//远程新建目录
			sftpClient.rmdir("");					//远程删除目录
			
			sftpClient.createFile("newRemoteFile");	//远程新建文件
			sftpClient.openFileRW("remoteFile");	//远程打开文件,可进行读写
			
			Session session = con.openSession();
			session.execCommand("uname -a && date && uptime && who");	//远程执行命令
			
			
			
			//显示执行命令后的信息
			System.out.println("Here is some information about the remote host:");
			InputStream stdout = new StreamGobbler(session.getStdout());

			BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

			while (true)
			{
				String line = br.readLine();
				if (line == null)
					break;
				System.out.println(line);
			}

			/* Show exit status, if available (otherwise "null") */

			System.out.println("ExitCode: " + session.getExitStatus());

			session.close();
			con.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}


2、rsync
rsync是linux自带的备份文件/目录的软件,使用时需要配置一下需要同步的目录/认证之类的属性(/etc/rsyncd.conf),网上有太多的配置说明,就不多说了,但要找到一种适合自己应用且效率比较高的配置还是不容易。

3、sersync
sersync主要用于服务器同步,web镜像等功能。基于boost1.41.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是: sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。
本项目socket与http插件扩展,满足您二次开发的需要。
安装和配置也见http://code.google.com/p/sersync/

上面是其简介和特点,其配置是基于rsync的,配置sersync之前需要启动rsync的守护进程,然后配置confxml.xml文件,类似于rsync的/etc/rsyncd.conf,主要是配置目的server的地址、目录以及本地目录。

我们可以根据情况选择方式1进行主动分发,或者选择方式2或3进行同步。

数据分发/同步
1
0
分享到:
评论

相关推荐

    构建高性能Web站点_PDF_45.5M

    14.6 分发还是同步 14.7 反向代理 第15章 分布式文件系统 15.1 文件系统 15.2 存储节点和追踪器 15.3 MogileFS 第16章 数据库扩展 16.1 复制和分离 16.2 垂直分区 16.3 水平分区 第17章 分布式计算 17.1 ...

    构建高性能Web站点(PDF)

    14.6 分发还是同步 14.7 反向代理 第15章 分布式文件系统 15.1 文件系统 15.2 存储节点和追踪器 15.3 MogileFS 第16章 数据库扩展 16.1 复制和分离 16.2 垂直分区 16.3 水平分区 第17章 分布式计算 17.1...

    构建高性能Web站点(PDF)-第2部分

    14.6 分发还是同步 14.7 反向代理 第15章 分布式文件系统 15.1 文件系统 15.2 存储节点和追踪器 15.3 MogileFS 第16章 数据库扩展 16.1 复制和分离 16.2 垂直分区 16.3 水平分区 第17章 分布式计算 17.1...

    SQL数据同步(独立分发服务器)

    SQL数据同步(独立分发服务器),讲解如何建立SQL2005的分发服务器

    实例Sql server 2005订阅复制同步分发数据到多台服务器

    实例Sql server 2005订阅复制同步分发数据到多台服务器文档里面详细的讲述是如何操作的,并且附有截图.

    GoldenGate实时同步DB变更数据到ActiveMQ JMS队列

    GoldenGate实时同步DB变更数据到ActiveMQ JMS队列

    Socket文件分发工具

    1.读取本地文件列表快速复制分发到多台远程服务器上(并行发布) 2.可视化管理系统分发配置 3.可全量或部分备份远程服务器文件列表 4.可还原指定远程服务器到任意已备份的系统版本 5.可停止,重启远程IIS站点及...

    高并发web架构

    目录 ...3.6 分发还是同步........................................................................................................................................................82 3.7 ...

    利用信息协调的基于同步的密钥分发

    我们提出了一种利用下三角错误位检测的信息协调方法来实现基于同步的密钥分发的方案。 所提方法可以解决参数引起的误码问题基于同步的密钥分发方案中两个同步半导体激光器的失配。 理论上分析表明,该方法可以通过一...

    网络游戏-基于内容分发网络的同步文件的访问方法和系统.zip

    网络游戏-基于内容分发网络的同步文件的访问方法和系统.zip

    高速连续变量量子密钥分发系统同步技术研究

    在高速连续变量量子密钥分发系统中,位帧同步技术是确保准确获取量子信号所携带有效信息的核心技术之一。结合平衡零差探测器测量相干态的正则分量数据,提出了一种简单高效的位帧同步理论方案。基于此理论方案,在...

    连续变量量子密钥分发系统中同步方案及实验实现

    基于连续变量量子密钥分发系统,提出了一种自发同步的方案。这种方案能有效地克服连续变量量子在光通信过程中受到环境因素的影响,实现连续变量量子密钥分发端和接收端系统之间的同步。从理论上介绍了这种同步方案的...

    数据库比较与同步软件DBSync

    用于系统间数据对接、数据分发、数据对比等。 支持各种数据源 既支持常规数据库,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件中的数据,任何可用OLE DB连接的数据,均可参与同步。 ...

    达梦数据同步

    的关系数据模型和标准接口,跨越多种软硬件平台,支持强大而灵活的拓扑结构,能以极少的系统 开支实现秒级数据实时同步,可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维 护、订阅分发、多业务中心等...

    网络游戏-基于内容分发网络CDN的数据同步方法,客户端及服务器.zip

    网络游戏-基于内容分发网络CDN的数据同步方法,客户端及服务器.zip

    数据库比较与同步软件DBSync v1.1

    用于系统间数据对接、数据分发、数据对比等。支持各种数据源既支持常规数据库,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件中的数据,任何可用OLE DB连接的数据,均可参与同步。支持...

    xsync,集群分发同步脚本,依赖rsync

    将文件上传到服务器/usr/bin目录下,然后chmod +x xsync

    数据库同步软件【官方】免费版

    它为您提供一种简单智能的方式完成复杂的数据库数据同步,分发操作。 SyncNavigator 可以帮助您快速的完成数据库的数据同步。不需要专业的数据库知识,只需要进行简单的设置即可实现数据库的同步,分发以及热备份。...

    写着玩的基本同步工具

    经常需要打开局域网映射驱动器的文档,每次的等待都要命,于是写了这个软件。 先将文档复制到本地,打开文档(doc xls),检测文档修改时间,如果修改,然后覆盖网络中的文档。 这是我写的第一个算是程序的程序,有...

Global site tag (gtag.js) - Google Analytics