记一次大数据量处理性能调优的过程总结

一、背景介绍

1、系统的架构是spring+mybaties+oracle。
2、系统处理的数据量在五十万到百万级之间,采用了kafka进行分布式处理,主要功能和要优化的模块在数据清算和数据导出。

二、可优化点介绍

1、kafka—分布式订阅-发布消息系统
kafka是一款可靠、可扩展、高性能的消息系统,具体介绍可以看Kafka简介,这篇文章写的很不错。
在本系统主要是利用kafka集群,开辟多个kafka分区(Partition)来实现并行消费而提高性能。
2、阻塞队列的使用
在数据导出模块的消费端,先利用多线程并行分批处理需要导出的数据,同时用单线程去把数据写到文件里。这里面数据的传递用到了阻塞队列里,我用的是效率更高的LinkedBlockingQueue,这个可以看我的另一篇博客Java阻塞队列的学习笔记 文章有介绍为什么LinkedBlockingQueue的效率高一些。这样这个阻塞队列就等于自己实现的一个小的消息系统,生产者生产数据和消费者取数据可以同时进行,提高系统整体的处理性能。
3、oracle的sql语句优化
下面的是我总结的oracle的sql语句常用优化原则:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值