最佳实践:mysql远程移动设备通过3G连接同步

时间:2011-10-22 08:18:05

标签: mysql database synchronization 3g

目前我们有一个主要的mysql服务器,通过3G连接每隔1小时连接100个远程移动设备[车辆] [不太可靠:每天在少数车辆同步时断开连接]。通过.net windows服务工具完成同步。检查远程mysql状态后,主开始执行同步。有时,同步有效载荷数据约为 6-8 MB 。仅使用非事务方法为一个表执行同步。

使用的mysql服务器版本是:4.1.22

问题

  1. 使同步事务知道只有一个表获得同步是否有用?或者没有增值!

  2. 使用mysql语句加载到远程计算机的同步数据:

    LOAD DATA LOCAL INFILE

    文件格式为CSV。我如何以压缩格式发送数据?无需开发驻留在远程设备上的工具。

  3. 同步域中的良好实践或体系结构是部署远程应用程序,它将在发送数据后执行同步,还是应由主服务器直接完成?我的意思是,如果出现新要求,将难以更新或修复驻留在远程计算机上的工具的开发。但它将为同步操作节省大量带宽,并且它将消除在同步正在进行时发生断开连接时可能从实时主同步引起的错误。因此,如果这是建议,那么只会发送压缩数据,然后通过使用某种校验和,我将验证发送的整个数据,否则请求将再次启动。

  4. 请分享您的想法和经验。

    感谢,

1 个答案:

答案 0 :(得分:1)

首先,我会将客户端的同步更改为服务器的同步。多对一对一对多的方法将比您当前的设置更容易扩展。我上面的评论提供了一些必要的客户端到服务器同步的好例子。

其次,打开交易记录条目。没有理由不拥有它。这将保证信息及时输入,并且可能提供更多的“元数据”(例如哪些客户端更新速度慢等等)。

最后,您可以通过不同的方式“增强”此上传。如果您要在服务器端实现一种服务,通过客户端的POST接收响应,您就可以将数据发送到服务器端而不会出现任何问题。这就像将文件'上传'到服务器一样。一旦您的6-8 MB文件被“上传”,它就会被放入数据库中。关于这一点的好处是,如果您的服务器是APACHE(甚至在您的情况下是IIS服务器),您将能够让每个客户端同时上传数据而不会出现太多问题。此时,通过插入内容上传到mysql服务器几乎没有时间,您的过程将继续没有问题。

这是我处理你的情况的方式......