socket服务器接收客户端发送的数据,解析后存入sql server,发现客户端发送数据速度过快的情况下,数据库就成了瓶颈,单纯的同步插入或者异步插入都会存在丟数问题(数据已被服务器正确接收,但是插入数据库存在问题),能否有较好的方法解决此问题。
考虑用缓存什么的,但这方面不太了解,牵扯到缓存开辟在什么地方(单tcp连接会话上还是服务器实例上),锁的问题(缓存修改时机,存入数据库时机,并发问题)等等问题。
期待高手解决下,最好给个详细的教程或者实例。
也不知道你的是什么数据,我的想法是,把数据变成byte[]封装到一个类里面对,然后用一个集合(List)存到数据对象的引用,服务器端负责存数据,另一个线程负责处理数据。
使用队列,接受的数据放到队列里面,然后从队列里面把数据写到数据库,相当于用队列缓冲下,不用队列比如用缓存,也可以达到相同的目的.中间有个缓冲其实就可以了