Кассандра QueryLogger вводит исключение NoHostAvailableException - PullRequest
0 голосов
/ 28 марта 2020

У меня есть приложение весенней загрузки, в котором я использовал шаблон расширения AbstractCassandraConfiguration до bootstrap Cassandra. Все работает прекрасно. Теперь я хочу включить ведение журнала запросов, поэтому я попытался реализовать этот шаблон:

https://github.com/spring-projects/spring-boot/issues/7312#issuecomment -358448437

Я делаю это путем обновления моей реализации AbstractCassandraConfiguration до : 1. Будьте классом @Configuration. 2. Добавление Bean QueryLogger Bean

Но затем во время выполнения я начинаю получать исключение NoHostAvailableException.

Поскольку код до и после v похож, плохо просто вставьте все это и укажите новый, ломающий код.

Я чувствую, что соединение повреждено, но также чувствую, что мой шаблон настолько стандартный, что я не уверен, что происходит !!! Любые советы приветствуются. Спасибо

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;

import com.datastax.driver.core.AuthProvider;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PlainTextAuthProvider;
import com.datastax.driver.core.QueryLogger;

@Configuration   // **** NEW ****
public class CassandraConfig extends AbstractCassandraConfiguration {

  @Value("${spring.data.cassandra.contact-points:placeholder}")
  private String contactPoints;

  @Value("${spring.data.cassandra.port:0000}")
  private int port;

  @Value("${spring.data.cassandra.keyspace-name:placeholder}")
  private String keySpace;

  @Value("${spring.data.cassandra.username}")
  private String username;

  @Value("${spring.data.cassandra.password}")
  private String password;

  @Value("${spring.data.cassandra.schema-action}")
  private String schemaAction;

  // removed all the @Override getters for above props

 // **** NEW ****
 @Bean
 public QueryLogger queryLogger(Cluster cluster) {
    QueryLogger queryLogger = QueryLogger.builder().build();
    cluster.register(queryLogger);
    return queryLogger;
   }
 }

Исключение:

[dispatcherServlet] в контексте с путем [] вызвало исключение [Ошибка обработки запроса; вложенным исключением является org.springframework.data.cassandra.CassandraConnectionFailureException: Query; CQL [SELECT * FROM my_table;]; Все хосты попытались выполнить запрос (неудачно: cassandradb01.AAA.test.XXXX.com/10.18.51.15:9042 (com.datastax.driver.core.exceptions.BusyPoolException: [cassandradb01.AAA.test.XXXX.com /10.18.51.15] Пул занят (нет доступного соединения и тайм-аут после 5000 МИЛЛИСЕКОНД))); вложенное исключение: com.datastax.driver.core.exceptions.NoHostAvailableException: все хосты попытались выполнить запрос (неудачно: cassandradb01.AAA.test.XXXX.com/10.18.51.15:9042 (com.datastax.driver.core) .exceptions.BusyPoolException: [cassandradb01.AAA.test.XXXX.com/10.18.51.15] Пул занят (нет доступного соединения и истек тайм-аут после 5000 МИЛЛИСЕКОНД)))] с root причиной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...