(二)高并发压力测试调优篇——caffeine本地缓存调优

前言

在上一节内容中我们主要介绍了高并发请求下,mysql数据库的调优,其调优的主要原理是尽量减少数据库的IO操作,从而提高服务器的访问性能。在此基础上,本节内容是关于如何利用缓存,提高系统的并发访问能力。我们会首先在项目中集成caffeine本地缓存组件,通过jemeter压测工具验证本地缓存对高并发的影响。

正文

  • 添加caffeine和spring cache的pom依赖
<!-- Spring Boot Cache Starter -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-cache</artifactId>
</dependency>

<!-- Caffeine Cache -->
<dependency>
	<groupId>com.github.ben-manes.caffeine</groupId>
	<artifactId>caffeine</artifactId>
    <version>3.1.5</version>
</dependency>
  • 在application.yml中配置caffeine缓存
spring:
  cache:
    type: caffeine
    caffeine:
      spec: initialCapacity=100,maximumSize=500,expireAfterWrite=5m

  • 使用@EnableCaching注解启用缓存

  • 添加一个本地缓存测试用例
@Cacheable(cacheNames = "user", key = "#p0")
@Override
public TpsUserEntity getUserByUsername(String username) {
	LambdaQueryWrapper<TpsUserEntity> lambdaQueryWrapper = new LambdaQueryWrapper<TpsUserEntity>()
			.eq(TpsUserEntity::getUsername, username);
	return this.getOne(lambdaQueryWrapper);
}
  • 500用户,并发500的压测结果:吞吐量达到18000/sec

  •  500用户,并发1000的压测结果:吞吐量达到19000/sec

  • 500用户,并发2000的压测结果:吞吐量达到22000/sec

结语

由此可见,通过增加内存级的缓存能够大幅度提高接口的并发访问能力,对于高并发访问的接口,我们可以通过使用本地内存或者redis等内存级的数据库,提升接口的并发访问能力。

相关推荐

  1. 【OceanBase诊断 】—— 索引

    2024-07-17 16:04:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 16:04:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 16:04:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 16:04:02       62 阅读
  4. Python语言-面向对象

    2024-07-17 16:04:02       72 阅读

热门阅读

  1. openfeign的概念作用和使用流程

    2024-07-17 16:04:02       22 阅读
  2. Blob数据格式怎么转换成ArrayBuffer

    2024-07-17 16:04:02       22 阅读
  3. Qt篇——在线程中更新ui控件

    2024-07-17 16:04:02       22 阅读
  4. 520. 检测大写字母

    2024-07-17 16:04:02       24 阅读
  5. CSharp类和对象练习--求Pi的值

    2024-07-17 16:04:02       43 阅读
  6. 第一阶段面试题总结

    2024-07-17 16:04:02       18 阅读