2017-07-23 150 views
1

我已经签约建立期刊服务(网络,Android和iOS),需要的离线版本,用于Windows和可能的话Ubuntu的太发展。最终用户的Web界面和移动应用程序当前正在运行来自API网关+ Lambda(Node)+ RDS堆栈上托管的API端点的数据。对于脱机桌面应用程序,我想使用相同的浏览器客户端代码并运行本地服务器以充当API端点。这要求我有一个适当的系统来在本地运行MySQL服务器,并有一个同步系统来将更新同步到本地服务器。运行Web应用程序在本地

什么解决方案将被推荐用于此目的复制的MySQL DB的。理想情况下免费。由于我是对项目进行重新设计的设计阶段,我目前对任何类型的建议持开放态度,包括从MySQL转向。数据完全是文本内容,现在大约8GB。在接下来的两年里,它将逐渐扩大到30GB左右。

+0

你受了很多伤害。尽管lambda运行node.js并且您使用api网关来调用它,但它仍然是一个不同的开发过程。你将会得到两个不同的代码库。 – Darkrum

+0

AWS RDS从6种不同的数据库引擎中挑选,因此如果本地数据库与AWS RDS中的数据库不同,您将不得不进行一些重写。 – Darkrum

+0

是的,这两个代码库是一个问题,但是与使用客户端强制的所有铃声和哨声来构建新UI的复杂性相比,移植API逻辑非常经济。 –

回答

0

这是可能的,但并不容易。我已经做过几次这样的变体,其中包括2个与Linux系统混合使用的Windows。有几个关键步骤:

1 - 把所有的系统配置参数 - 目录路径,MySQL的凭据,时区,API密钥等 - 在一个文件中。在顶部文件参考(例如,每个PHP文件的require_once('serverinfo.php');。如果你这样做是正确的,你将最终的代码是,除了那一个文件,相同为多个Linux & Windows系统,只要你使用类似(例如,5.x的)在所有的安装PHP版本

2 - 。转移是一种痛苦,这是毫无疑问的缺点是,你最有可能不能使用任何官方的“复制”不同的,因为(而不是连续不断的)系统我已经使用了两种不同的方法,正确的答案取决于客户的要求,如果传输主要是单向的,两种方法都可以发挥最佳效果

a)添加更新时间戳和传输fla g(如果有2个以上的服务器,则为多个)。每当添加或更新记录时,都将时间戳设置为now()并且transfer = 1。要传输数据,请选择传输= 1的位置,并将所有内容都放入文本文件(CSV,JSON或任何您喜欢的格式),并将其传输到其他系统(FTP,电子邮件等)系统之间的连接可以使用两个服务器之间的https接口来传输数据“直播”。在接收时,第二台服务器会检查时间戳以确保数据比您已有的数据更新并更新数据库。如果传输是一个实时https接口,请将消息发送回第一台服务器,告诉它清除传输标志。如果传输是基于文件的批处理模式,那么传输标志需要在文件发送时重置(并希望传输到另一端)。

b)您想转移每次转储一切。这可以是mysqldump或您自己编写的等效代码。这比第一种方法简单得多,但一旦数据达到一定的大小时通常不会很好地工作 - 并且您可能已经在那一点上拥有8 GB的数据。

+0

虽然这是很好的建议。我不知道为什么OP将PHP作为标签,因为它不是用PHP编写的。 – Darkrum

+0

@Darkrum好吧,我基于标签基于PHP中的关键代码进行回复。 GIGO – manassehkatz

+0

我对PHP标签感到抱歉。过去十年里,这款软件经历了很多修改,其中大部分使用PHP作为代码库。最初的想法是将php和Apache捆绑在一起。但考虑到复杂性的进一步增加,我们决定不这样做。 –

相关问题