Проблема зависания службы, вызванная Redis в случае одновременного выполнения одной записи.

описание проблемы

Недавно проект проводит тестирование производительности под давлением. Платформа использует Spring Boot 2.1.2 + jedis 2.9.1. 80 одновременных непрерывных испытаний под давлением занимает 4-5 минут, и служба зависает. Все запросы находятся на рассмотрении. Проверьте журнал службы без каких-либо исключения. Убедитесь, что другие интерфейсы, которые не используют Redis, могут нормально запрашивать.

Найдите идеи для проблем

  • Проверил конфигурацию подключения Redis, все в порядке.

  • Затем используйте jstack, чтобы просмотреть информацию о стеке.

вставьте сюда описание изображения

Я нашел много потоков WAITING, и, посмотрев вниз, все они ждут, вызванные методом redis getResource.

  • Посмотреть исходный код RedisJedis.java

    @Override
    public void close() {
         
          
          
        if (dataSource != null) {
         
          
          //1
            if (client.isBroken()) {
         
          
          
                this.dataSource.returnBrokenResource(this);
            } else {
         
          
          
                this.dataSource.
                        returnResource(this)

Supongo que te gusta

Origin blog.csdn.net/wagnteng/article/details/126585769
Recomendado
Clasificación