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

萌新求教!Java高CPU占用问题

萌新求教!Java高CPU占用问题

慕慕森 2019-07-26 23:22:43
问题描述如题,如何解决CPU占用过高的问题。现在有一个项目需要对大量数据进行非常频繁的处理,这个项目是合作项目,合作程序每隔10秒钟向数据库中写入大约1000条数据,但是他们写入的数据无法直接使用。我方程序使用定时任务每隔10秒钟访问数据库,获取新增的数据并进行解析、计算、另存、并操作关联数据表,每次大约执行10条sql语句。但是这种处理方式大量占用数据库服务器CPU,客户并不打算升级器,后续每次新增的数据量还会增长,求一个有效的优化方案。感激不尽!问题补充1.用户要求使用折线图实时展示最新数据,就是说每次出现新数据就必须立刻反应在折线图上,他们最低的要求是每10秒刷新一次。2.合作程序是以前的程序,我们没办法调整对方的程序,只能把处理放在我方。
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

既然他们写入的数据无法直接使用,可以考虑用MQ代替写数据库,比如,他们通过MQ发送1000条数据,你们的程序从MQ中取得数据,处理后再写入数据库。比如RabbitMQ。
                            
查看完整回答
反对 回复 2019-07-26
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

能否对方的数据做预处理,然后在写入库中,这样咱们这边能直接使用?。。。能否让对方写入消息队列(RabbitMQ),然后对数据做完处理,在存库,然后就可以直接使用。
如果数据量比较小,能否直接存储原始数据,每次请求折线图,实时处理数据后再返回。
如果数据量很大,能否将数据划分成可变的(比如平均值)和不可变的(昨天的生产量),然后不可变的直接存库,可变的每次实时计算。
按照你现在的流程,好像没啥优化的余地了,最多就是数据库层面的一些优化。。。如果你找到好的解决方案,给我回复一下,我也学习一下。
                            
查看完整回答
反对 回复 2019-07-26
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

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