使用java每秒流式传输大量数据

Posted

技术标签:

【中文标题】使用java每秒流式传输大量数据【英文标题】:Stream huge data per second with java 【发布时间】:2012-06-23 02:41:24 【问题描述】:

我有 10000 个具有这种结构的文本文件

x         y  
------------------ text file structure

2         1
3         2
3         3
.         .
.         .
.         .

我可以在 java 中每秒发送 10000 个数据(一秒信息是一行文件)吗?我想模拟 10000 gps 的

感谢您的帮助。

【问题讨论】:

您想如何发送这些数据?作为文件?作为网络服务调用?通过网络端口? 每个文件读取一行并每秒发送行信息,也许 json encode ... 通过网络端口使用 rabbitmq 是一种可能的解决方案 文件必须实时读取还是可以预处理? 它可以被预处理为一个 json 结构,然后发送信息,但是对于 10000 个文件,我真的不知道如何模拟它,也许每个文件同时在 java 中运行一个程序。 .. 嗯,缓冲区有问题? 这个问题是否有意义,我会回来的。 【参考方案1】:

您似乎每秒要从 10,000 个不同的文件中读取一行。

您会遇到的一个问题是某些操作系统不允许一次打开 10,000 个文件,并且反复打开和关闭文件效率非常低。

解决此问题的一种方法是合并文件,或增加允许的最大文件数。

由于您正在模拟 GPS,因此您需要以与它们相同的方式进行通信。例如如果使用 JSON 和 rabbitmq,请使用它们。但如果他们不使用这些,您的模拟就会变得不那么真实。

每秒从打开的文件中读取 10,000 行应该不是问题。

文件是否有实际的时间戳,例如以毫秒或微秒为单位,以便您可以在事件发生时对其进行排序?

【讨论】:

是的,文件有第二次第三列,那么有效的方法是合并文件,然后对事件进行排序,非常感谢! 如果您每秒有更新,最好使用更准确的时间戳,因为您无法知道订单差异来源为您提供了他们的数据。

以上是关于使用java每秒流式传输大量数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Json.net 将大量数据流式传输为 JSON 格式

大量设备数据的流式分析小规则

流式处理 WCF 大量对象

使用 pyspark 流式传输到 HBase

排序时流式传输大数据

使用管道将数据从 msssql 流式传输到节点