请问有合适的开源组件么(java版本)?或者有现成的思路贴借鉴一下吗?

应用场景是这样,一个管理端(Java实现),大量客户端(C++实现,数量大约10000),各个客户端会检测自己主机的某类文件的运行情况及状态变化,并实时将数据上报给管理端,同时管理端要将收到的数据存入数据库(MySQL),由于客户端数量较多从而在管理端形成了较大并发,现在思路是这样为了防止管理端在大并发压力下挂掉,想建立一个大的缓存机制(如队列模式),开辟多个线程接收到客户端传来的数据,立即将数据保存到缓存。在合适的时机(比如缓存中的记录达到一定数量,具体还没想好)批量将缓存中的数据批量保存至数据库,然后清空缓存,继续接收新数据,个人感觉有点大并发下的生产者、消费者的意思。

慕田峪4524236
浏览 147回答 3
3回答

慕的地8271018

不考虑具体语言,抽象一下,就是一个服务器面对大量客户端连接如何处理. 服务器不可能一个线程处理一个连接,这样线程太多服务器会挂.这个时候就是NIO的应用场景, Netty 是NIO的一个应用框架.

动漫人物

我有两个思路。1、可以看下分布式日志服务器。主要就是记录汇总嘛。2、把数据记录在本地log上,然后看看把log是怎么解析到服务端。缓存感觉不靠谱,缓存是不保证数据完整性的。你这么用会出问题,除非数据允许一定的误差。

汪汪一只猫

1.先存入缓存,在定时OR定量写入数据库,虽然能解决问题,但是这样就造成了,管理状态的不及时性。2.万一缓存挂了呢,之前保存的数据不是丢失了吗?
打开App,查看更多内容
随时随地看视频慕课网APP