Java 什么';将初始(批量)数据导入RESTful系统的最佳实践是什么? P>你认为一个干净高效的方式最初填充一个数据存储,它是REST分布式系统体系结构的一部分?p>
我们已经有了一个用于批量导入的POST方法,它接受XML提要、解析、验证和导入数据。因此,有一种可能需要客户机针对我们的REST接口进行POST(如果我们在请求中遇到超时问题,则可能是分块发布) 数据存储本身基于MongoDB,因此在另一方面,您也可以考虑低级别的大容量导入,它获取gzip数据文件,对其进行解压缩,然后直接将JSON数据导入数据库(这当然会绕过我们的业务逻辑来验证要导入的数据)Java 什么';将初始(批量)数据导入RESTful系统的最佳实践是什么? P>你认为一个干净高效的方式最初填充一个数据存储,它是REST分布式系统体系结构的一部分?p>,java,rest,mongodb,architecture,bulk,Java,Rest,Mongodb,Architecture,Bulk,我们已经有了一个用于批量导入的POST方法,它接受XML提要、解析、验证和导入数据。因此,有一种可能需要客户机针对我们的REST接口进行POST(如果我们在请求中遇到超时问题,则可能是分块发布) 数据存储本身基于MongoDB,因此在另一方面,您也可以考虑低级别的大容量导入,它获取gzip数据文件,对其进行解压缩,然后直接将JSON数据导入数据库(这当然会绕过我们的业务逻辑来验证要导入的数据) 您的意见和建议是什么?是否有任何REST模式可以为这个问题提供建议?在不了解更多细节的情况下,我认为您
您的意见和建议是什么?是否有任何REST模式可以为这个问题提供建议?在不了解更多细节的情况下,我认为您最终解决了这个问题。我会将数据分割成块,然后运行一个程序来读取其中一个块,并将这些数据发布到您的http接口 执行导入的脚本/程序应该只使用足够小的块来避免超时,并且应该知道它是否成功。在一个工件超时或失败的情况下,你应该确保你知道你在导入中的位置,这样你就可以在同一个地方重新尝试 话虽如此,如果您的系统允许多次导入相同的内容而不产生任何后果(请参阅),那么在您必须完全重新发送一个段的情况下,您的restful后端将能够在不复制数据的情况下接受它
如果工作正常,甚至可以同时使用多个块运行导入程序,使其并行并更快。(只要您的http/restful后端能够处理它)。。。是的,似乎我会坚持目前的方法,以1000家实体的费用入账。感谢您对操作幂等性的提示,这可能需要跟踪单个操作的成功情况,并查看在后续尝试中可以跳过哪些操作。HTTP管道可能会增加吞吐量吗?