您认为最初填充作为RESTful分布式系统架构一部分的数据存储的干净且有效的方法是什么?
我们已经有批量导入的POST方法,它采用XML提要,解析,验证和导入数据。因此,有一种可能性要求客户端针对我们的REST接口进行POST(如果我们遇到请求的超时问题,可能会以块为单位)。
数据存储本身基于MongoDB,所以另一方面你也可以考虑一个低级批量导入,它需要一个gzip压缩数据文件,解压缩它并直接将JSON数据导入数据库(当然会绕过我们的业务逻辑来验证要导入的数据)。
您有什么意见和建议,是否有任何REST模式可以就此问题提供建议?
答案 0 :(得分:1)
在不知道更多细节的情况下,我认为你最终会把它钉在上面。我会将数据拆分成块,然后运行程序来读取其中一个块并将这些数据发布到您的http接口。
执行导入的脚本/程序只能使用足够小的块来避免超时,并且应该知道它的成功与否。如果某件作品超时或失败,您应该确保知道导入的位置,以便您可以从同一个地方重新尝试。
说了这么多,如果你的系统允许多次导入相同的东西而没有后果(参见http://en.wikipedia.org/wiki/Idempotence)也很好,所以如果你必须完全重新发送1段,你的宁静后端将能够接受它而无需重复数据。
如果你运行良好,你甚至可以同时运行多个块的导入程序,使其平行且更快。 (只要你的http / restful后端可以处理它)