大数据处理有关问题,本人新手,望请大神赐教!
大数据处理问题,本人新手,望请大神赐教!!!在做一个股票平台的软件(例如大智慧,同花顺等),做服务器的时候因
大数据处理问题,本人新手,望请大神赐教!!!
在做一个股票平台的软件(例如大智慧,同花顺等),做服务器的时候因为一些原因,只能把实时收到的数据放入文件中,运行时一个股票每秒钟多的时候会变2到4次,服务器会把这些数据都存入文件中,但是假如有一个客户端登陆了,你得把今天的数据都发给他,那么我每秒都再往文件中存入数据,我再从文件中读取数据这样可以吗。我想到了对文件加锁,但是如果客户要的是以前所有的数据那,加锁的时候不能对文件存入数据,这样不会影响效率吗!?由于是股票软件,晚一点都会有人找你的.!实在纠结了!求大神赐教!!!!
[最优解释]
你貌似数据存储格式有问题。
你一个股票的数据存储不是以天为单位,文件形式保存么?
先是已接收当天历史数据为准,之后再事实更新?有问题么?
[其他解释]
完全的实时同步是不可能达到的,只能说延时在可接受的范围之内,如果想做到实时同步,那可以使用这样策略:每个登录的客户端保持长连接,当服务器有数据需要更新时,在保存到文件的同时向所有在线客户端发布;客户端在初次登录时读取历史文件,其他在线时都是实时同步的数据,客户端要做实时同步的接收处理
但这样的策略需要极高的硬件性能做代价,如果能做成分布式处理的架构,那就更好
[其他解释]
当天数据取出来以后是取一条发一条那,还是用链表串上取完了一起发?
这个问题取决于你的实现,没有固定规则,如果你想取数据是一个线程,发数据是一个线程,那就用队列边取边发;如果你想历史数据分段使用不同的线程处理,那就每个线程取一条发一条
[其他解释]
还的自己顶一下!
[其他解释]
你的文件是自己定义的格式?怎么不用数据库Access或SQL Server
[其他解释]
做成文件,这真不是办法——————
[其他解释]
文件形式的数据库非常多。你们可以去查下。
就是你们用的QQ聊天信息,也是用文件形式的数据库保存的
[其他解释]事先收当天的历史数据,但是我读取当天历史文件的时候,这不是也是耗时的吗?消耗的时间时,数据也在改变,这时不是也得往文件里加数据吗?
[其他解释]说错了,是我读取完当天历史文件时,把数据给客户端发过去这会耗时吧,他消耗的时间,数据又改变了,怎么能让他同步,还有当天数据取出来以后是取一条发一条那,还是用链表串上取完了一起发??
[其他解释]关于同步,我很想问一下,你们通信协议是怎么制定的。
因为好的协议肯定把同步问题已经解决了。
诸如你现在的这个问题,客户端为了保证实时更新,肯定向服务器不断的发送请求数据帧,这个请求数据帧发送的时候,已经把当前客户端接收的最新数据的时间点信息发送过去了。那时候服务器下发的时候会根据你的请求帧的时间点,形成不定长度的回复帧,带N条数据内容的。
[其他解释]只有一个线程写,其它读,看看这个是否满足要求:
CFile::shareDenyWrite