为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪4524236 2022-09-16 18:14:15

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

查看完整描述

3 回答

?
慕的地8271018

TA贡献1483条经验 获得超4个赞

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

查看完整回答
反对 回复 2022-09-21
?
动漫人物

TA贡献1479条经验 获得超10个赞

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

查看完整回答
反对 回复 2022-09-21
?
汪汪一只猫

TA贡献1551条经验 获得超8个赞

1.先存入缓存,在定时OR定量写入数据库,虽然能解决问题,但是这样就造成了,管理状态的不及时性。
2.万一缓存挂了呢,之前保存的数据不是丢失了吗?

查看完整回答
反对 回复 2022-09-21

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信