最近开发一个项目。客户端每隔10秒提交100行数据给服务端,服务端查重后写入。
客户端约在几万左右,提交数据比较集中,不考虑读数据的问题。 现在的设计是: 数据库按客户端进行分表。每个表的数据量不高。 服务端获得数据后,先插入redis队列,然后在通过定时任务插入数据库。 问题是: 1、服务端提供给客户端的接口,是否能满足几千上万的客户端同时post数据(客户端是10秒提交一次)? 2、将数据首先保存在redis队列中,如果有几十上百万的数据,redis是否稳定? 基本目标是保证服务端能正常提供服务。---------------------- 补充内容 -------------------------------
项目主要是采集用户的数据。开机就会自动运行。 每次提交100条,10秒提交一次,一般用户每天在10次以内,也就是1000条数据以内。 每条数据包含五六个值对,在100字符以内。 需要保证每天数据的完整性。会出现多个客户端采集同一用户数据的情况,所以需要避免重复。现在考虑是这样的:
数据表按用户分表。 用户提交的数据按用户先保存在redis队列中,即每个用户每天一个队列,保存到数据库后,删除该队列。解决办法:https://segmentfault.com/q/1010000005931313