问题描述
现有一个TCPsocket服务端,并发连接数据大概有1W左右,没个连接没隔30秒发一条数据到服务端,如何将这些数据能实时的插入到数据库中!
解决方案
解决方案二:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。
解决方案三:
队列+数据库批处理
解决方案四:
引用1楼wqc5461的回复:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。
现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!
解决方案五:
引用3楼a8282542的回复:
Quote: 引用1楼wqc5461的回复:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!
那就用线程池多启动几个这样的线程。
解决方案六:
引用4楼wqc5461的回复:
Quote: 引用3楼a8282542的回复:
Quote: 引用1楼wqc5461的回复:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!
那就用线程池多启动几个这样的线程。
入库已经开启多个线程了,但是每秒只能处理70-80个
解决方案七:
引用5楼a8282542的回复:
Quote: 引用4楼wqc5461的回复:
Quote: 引用3楼a8282542的回复:
Quote: 引用1楼wqc5461的回复:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!
那就用线程池多启动几个这样的线程。
入库已经开启多个线程了,但是每秒只能处理70-80个
压力在数据库I/O并不在程序。
时间: 2024-10-21 23:30:04