热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

求教如何能实时的将socket服务端接受的数据存入数据库

现有一个TCPsocket服务端,并发连接数据大概有1W左右,没个连接没隔30秒发一条数据到服务端,如何将这些数据能实时的插入到数据库中!
现有一个TCP socket服务端,并发连接数据大概有1W左右,没个连接没隔30秒发一条数据到服务端,如何将这些数据能实时的插入到数据库中!

6 个解决方案

#1


所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。

#2


队列+数据库批处理

#3


引用 1 楼 wqc5461 的回复:
所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。

现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!

#4


引用 3 楼 a8282542 的回复:
Quote: 引用 1 楼 wqc5461 的回复:

所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。

现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!

那就用线程池多启动几个这样的线程。

#5


引用 4 楼 wqc5461 的回复:
Quote: 引用 3 楼 a8282542 的回复:

Quote: 引用 1 楼 wqc5461 的回复:

所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。

现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!

那就用线程池多启动几个这样的线程。
入库已经开启多个线程了,但是每秒只能处理70-80个

#6


引用 5 楼 a8282542 的回复:
Quote: 引用 4 楼 wqc5461 的回复:

Quote: 引用 3 楼 a8282542 的回复:

Quote: 引用 1 楼 wqc5461 的回复:

所有的连接把收到的数据放到Queue里,然后单独启动一个线程循环取Queue里的数据进行存储。

现在是这样的处理机制,连接少可以,但是连接数一多入库的速度就跟不上接收速度!

那就用线程池多启动几个这样的线程。
入库已经开启多个线程了,但是每秒只能处理70-80个

压力在数据库 I/O 并不在程序。

推荐阅读
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • 本文详细介绍了进程、线程和协程的概念及其之间的区别与联系。进程是在内存中运行的独立实体,具有独立的地址空间和资源;线程是操作系统调度的基本单位,属于进程内部;协程则是用户态下的轻量级调度单元,性能更高。 ... [详细]
  • 题目描述:计算从起点到终点的最小能量消耗。如果下一个单元格的风向与当前单元格相同,则消耗为0,否则为1。共有8个可能的方向。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 深入解析Python进程间通信:Queue与Pipe的应用
    本文详细探讨了Python中进程间通信的两种常用方法——Queue和Pipe,并通过具体示例介绍了它们的基本概念、使用方法及注意事项。 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • Java中的引用类型详解
    本文详细介绍了Java中的引用类型,包括强引用、软引用、弱引用和虚引用的特点和应用场景。 ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
  • Redis 是一个高性能的开源键值存储系统,支持多种数据结构。本文将详细介绍 Redis 中的六种底层数据结构及其在对象系统中的应用,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。通过12张图解,帮助读者全面理解 Redis 的数据结构和对象系统。 ... [详细]
author-avatar
伤不起饼子_132
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有