Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';将初始(批量)数据导入RESTful系统的最佳实践是什么? P>你认为一个干净高效的方式最初填充一个数据存储,它是REST分布式系统体系结构的一部分?p>_Java_Rest_Mongodb_Architecture_Bulk - Fatal编程技术网

Java 什么';将初始(批量)数据导入RESTful系统的最佳实践是什么? P>你认为一个干净高效的方式最初填充一个数据存储,它是REST分布式系统体系结构的一部分?p>

Java 什么';将初始(批量)数据导入RESTful系统的最佳实践是什么? P>你认为一个干净高效的方式最初填充一个数据存储,它是REST分布式系统体系结构的一部分?p>,java,rest,mongodb,architecture,bulk,Java,Rest,Mongodb,Architecture,Bulk,我们已经有了一个用于批量导入的POST方法,它接受XML提要、解析、验证和导入数据。因此,有一种可能需要客户机针对我们的REST接口进行POST(如果我们在请求中遇到超时问题,则可能是分块发布) 数据存储本身基于MongoDB,因此在另一方面,您也可以考虑低级别的大容量导入,它获取gzip数据文件,对其进行解压缩,然后直接将JSON数据导入数据库(这当然会绕过我们的业务逻辑来验证要导入的数据) 您的意见和建议是什么?是否有任何REST模式可以为这个问题提供建议?在不了解更多细节的情况下,我认为您

我们已经有了一个用于批量导入的POST方法,它接受XML提要、解析、验证和导入数据。因此,有一种可能需要客户机针对我们的REST接口进行POST(如果我们在请求中遇到超时问题,则可能是分块发布)

数据存储本身基于MongoDB,因此在另一方面,您也可以考虑低级别的大容量导入,它获取gzip数据文件,对其进行解压缩,然后直接将JSON数据导入数据库(这当然会绕过我们的业务逻辑来验证要导入的数据)


您的意见和建议是什么?是否有任何REST模式可以为这个问题提供建议?

在不了解更多细节的情况下,我认为您最终解决了这个问题。我会将数据分割成块,然后运行一个程序来读取其中一个块,并将这些数据发布到您的http接口

执行导入的脚本/程序应该只使用足够小的块来避免超时,并且应该知道它是否成功。在一个工件超时或失败的情况下,你应该确保你知道你在导入中的位置,这样你就可以在同一个地方重新尝试

话虽如此,如果您的系统允许多次导入相同的内容而不产生任何后果(请参阅),那么在您必须完全重新发送一个段的情况下,您的restful后端将能够在不复制数据的情况下接受它


如果工作正常,甚至可以同时使用多个块运行导入程序,使其并行并更快。(只要您的http/restful后端能够处理它)

。。。是的,似乎我会坚持目前的方法,以1000家实体的费用入账。感谢您对操作幂等性的提示,这可能需要跟踪单个操作的成功情况,并查看在后续尝试中可以跳过哪些操作。HTTP管道可能会增加吞吐量吗?