通过Apache CXF采集数据时单次请求的性能总结
1,简介
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。可以使用Apache CXF提供一些WebService服务。Apache CXF可以支持Soap和Rest协议。在实际项目中可以将Apache CXF通过Soap和Rest协议采集数据做为服务器端基础架构。
我们可以通过Rest和SOAP协议来采集数据。本篇文章主要研究的是通过SOAP协议传输数据,并将数据存储到数据库时,单次请求的数据瓶颈和优化方法。
2,性能测试
性能测试是在优化jdbc接口之后,使用大批量数据调用CXF框架的单次请求的性能。测试时单次存储11条数据(对应数据库中一张表的11列)。使用的是批量接口。
系统配置如下:
应用服务器:
1,cpu Intel(R)Xeon(R) CPU
2,内存 4G
3, 使用的是Tomcat服务器
数据库服务器:
1,cpu Intel(R)Xeon(R) CPU
2,内存 4G
3, 使用的是mysql数据库
进行批量测试的性能指标如下:
插入条数 | 使用时间(ms) | 服务器内存消耗 | 数据库服务器内存消耗 | 碰到问题 |
1000 | 234 |
| ||
10000 | 1552 | 15.2% | 10.6% |
|
20000 | 2988 | 15.2% | 10.6% |
|
30000 | 4462 | 15.2% | 10.6% |
|
40000 | 6353 | 15.2% | 10.6% |
|
50000 |
|
|
| 超出最大范围 |
60000 |
|
|
|
|
3,性能优化
调整后单次插入3万条收到成功信息后继续发送,性能测试如下:
插入条数 | 使用时间(ms) | 服务器内存消耗 | 数据库服务器内存消耗 | 碰到问题 |
30000 | 4745 | 15.1% | 10.6% |
|
60000 | 9619 | 15.2% | 10.6% |
|
90000 | 13996 | 15.1% | 11.1% |
|
120000 | 19955 | 15.3% | 9.7% |
|
150000 | 24116 | 15.3% | 9.7% |
|
180000 | 28803 | 16.2% | 9.6% |
|
210000 | 34582 | 16.2% | 9.7% |
|
240000 | 39197 | 16.2% | 9.7% |
|
270000 | 43431 | 15.9% | 9.7% |
|
300000 | 49849 | 15.9% | 9.7% |
|
600000 | 104182(1.73min) | 16.0% | 9.7% |
|
900000 | 229348(3.82min) | 16.2% | 9.7% |
|
1200000 | 514626(8.5771min) | 16.1% | 9.7% |
|
1500000 | 894118(14.9min) | 16.3% | 9.6% |
|
|
|
|
|
|
4,总结
Cxf在做大量数据采集的时候,需要考虑的几个地方:
1, 单笔上传数据的极限是5万条,超出5万条会出错,调用cxf接口的厂商要注意这个点。
2, 使用cxf采集数据15分钟内单次上传在服务器性能一般的情况下,单次上传的上限大概是150万条左右。
3, 在数据库的数据量增大的情况下,上传速度会逐渐减慢。