背景:
最近需要开一个10分钟一期的彩种,需要测试下往第三方出票的速度、获取中奖名单和算奖比对执行时间,10分钟一期对性能要求比较高
出票优化:
1、一次查询多票,开多线程并发投注。
2、一次投注传输多票
3、支付后启用消息驱动投注,为了保险会有一个定时任务扫描表往投注队列中补充遗漏的记录
获取中奖名单:
按照习惯,开始我还以为是FOR循环中多次数据库交互是主要瓶颈,改造成批量后,由于按主键取,速度很快,并没有什么改进,分析日志,从第三方接口取名单会比较慢,交互185次,取了9205条记录,费时1分钟多钟,需要改成并发去取名单
算奖:
还是开多线程进行算奖比对。
主要收获:
如果按主键取记录,并没有我原来想象的那么慢,实际测试了一下
单次取100条时间(ms) | 循环100次(ms) | 取单条(ms) |
143, | 565, | 6 |
121, | 571, | 6 |
115, | 778, | 6 |
100次相差5倍,但是还是在毫秒级,优化并不会效果明显。
多线程算奖代码:
private void concurrentCalPrize(final LotteryIssue issue,final Collection<Long> orderIds){
if(orderIds == null || orderIds.isEmpty()){
return ;
}
final CountDownLatch latch = new CountDownLatch(orderIds.size());
ExecutorService service = new ThreadPoolExecutor(5,5,100,TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>(Integer.MAX_VALUE));
for (final long jdorderId : orderIds) {
service.execute(new Runnable(){public void run(){
try{
calOrderPrize(issue,jdorderId);
}catch(Exception e){
log.error("",e);
}finally{
latch.countDown();
}
}});
}
try {
latch.await();
} catch (InterruptedException e) {
log.error("", e);
}
try {
service.awaitTermination(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
log.error("", e);
}
service.shutdown();
}
分享到:
相关推荐
### DB2 SQL性能调优秘笈 在数据库领域,IBM DB2因其稳定性和高效性而备受推崇,尤其是在大型企业级应用中。对于DB2数据库管理员(DBA)来说,掌握有效的SQL性能调优技巧至关重要。这不仅能提升系统的响应速度,还...
Oracle 性能调优需要通过八个步骤来实现,包括设立合理的 Oracle 性能优化目标、测量并记录当前性能、确定当前 Oracle 性能瓶颈、把等待事件记入跟踪文件、确定当前的 OS 瓶颈、优化所需的成分、跟踪并实施更改控制...
这次性能调优实战记录展示了从日志分析、内存监控、代码优化到JVM选择等一系列步骤,强调了在性能优化过程中,理解系统行为、定位问题源头、选择合适的工具以及不断迭代改进的重要性。对于从事性能测试和调优的...
《阿里+Java+开发手册、阿里巴巴Java性能调优实战》是两本专注于Java开发和性能优化的专业书籍,分别以嵩山版和华山版的形式呈现,由阿里巴巴集团编写。这两本书籍结合了阿里巴巴在实际业务场景中的丰富经验,旨在...
在实际应用中,Mycat的性能调优对于系统的整体效率至关重要。本指南将深入探讨Mycat性能优化的各个方面,帮助你更好地理解和掌握其关键技巧。 1. **Mycat架构理解**:Mycat的核心功能包括路由分片、数据切分、读写...
告警日志记录了数据库的告警信息,而Alertlog文件和Tracefiles文件记录了数据库错误和跟踪信息,这些都是性能调优时必须参考的数据。 Enterprise Manager Pages(OEM)作为Oracle企业管理器的组成部分,提供了一个...
在Linux系统中,性能调优是一项关键任务,它涉及到系统的稳定性、效率以及资源利用的最大化。这份名为“LINUX性能调优方法总结”的文档,很可能包含了一系列关于如何优化Linux系统性能的技术和策略。以下是根据标题...
Oracle 11g性能调优是数据库管理的重要组成部分,它涉及到多个层面的知识和技能。性能调优不仅仅是为了满足数据库操作的效率和响应速度,还涉及到系统的稳定性和资源的合理分配。调优的主体可以包括数据库管理员(DBA...
在IT领域,性能调优是确保系统高效运行的关键步骤,特别是在大数据、云计算和企业级应用环境中。性能监控和分析工具在此过程中扮演了至关重要的角色,它们可以帮助我们识别系统瓶颈,优化资源分配,提升整体性能。...
### DB2性能调优知识点详解 #### 一、概述 **DB2性能调优**是IBM为提升其数据库管理系统(DBMS)性能而提供的一系列指南和技术。这些技术旨在帮助DBA(数据库管理员)和开发人员识别并解决影响数据库运行效率的问题...
【DB2数据库性能调优】 在数据库管理领域,性能优化是一项关键任务,特别是对于像IBM DB2 Universal Database (UDB)这样的大型企业级数据库系统。本文档深入探讨了如何使用Java示例程序PERFORMER来监控和优化DB2 ...
Java GC与性能调优 Java GC与性能调优是 Java programming language 中非常重要的一部分,直接影响着 Java application 的性能。本文档将对 Java GC 与性能调优进行详细的介绍。 一、 Java 平台的逻辑结构 Java ...
"Windchill性能调优笔记.docx"文件很可能是对以上这些方面的详细记录和指南,包含了具体的步骤和建议。在实际操作中,应根据企业的具体情况进行调整,通过不断的测试和调整,找到最适合自己企业的性能优化方案。记住...
### 数据库性能调优技术——索引调优 #### 一、概述 随着信息技术的快速发展,数据库在各行各业的应用越来越广泛,对于数据处理速度和效率的要求也越来越高。数据库性能调优是一项涉及多方面知识的综合性技能,它...
《WebLogic性能调优:官方文档精粹》 在企业级应用服务器领域,WebLogic以其卓越的性能和稳定性,成为了众多企业的首选。然而,再强大的平台也需经过精心调优才能发挥其最大效能。本文基于一份来自Oracle官方的中文...
"SQL性能调优" SQL性能调优是指数据库系统中对SQL语句的优化,以提高数据库系统的响应速度和查询效率。 Oracle的内部优化器工作机制可以合理改进查询语句的组织方式,提高数据库系统的响应速度,实现前端画面及平台...
性能调优方法论在IT行业中,特别是在SQL Server的性能优化领域,是一门深奥而复杂的学科,它涉及从系统架构到具体代码实现的多个层面。本文将深入探讨由SQL Server MVP王辉分享的性能调优方法论,涵盖迭代调优、调优...
综上所述,该系统调优性能测试报告详细地记录了测试的过程、方法和结果,通过对登录和理财交易处理能力的测试,分析了系统在不同并发情况下的性能表现,为系统优化提供了数据支持和决策依据。通过对比优化前后的测试...
SQL Server性能调优是数据库管理员和开发人员必须掌握的关键技能,它涉及到一系列步骤和工具,以优化数据库的运行效率,减少延迟,提高查询速度,以及确保资源的有效利用。本实验主要涉及了两个核心工具:SQL ...
### Linux性能调优工具及其应用 #### 一、引言 在现代IT环境中,Linux作为最流行的开源操作系统之一,在服务器领域扮演着极其重要的角色。随着云计算技术的发展,大量的虚拟化和容器技术使得Linux系统在资源管理和...