Spring Data Cassandra getQueriedHost - PullRequest
       74

Spring Data Cassandra getQueriedHost

0 голосов
/ 23 октября 2019

Я использую Spring Data Casandra (2.0.14.RELEASE), и мой репозиторий расширяется CassandraRepository<T, MapId>. Я хочу получить запрашиваемый хост . Есть ли способ получить execution info при вызове методов CRUD в репозитории?

Я хочу знать, какой HOST запрашивался при каждой операции CRUD. Можно ли что-то написать в фоновом потоке и записать это, что вызывает вызов getQueriedHost всякий раз, когда в репозитории происходит какая-либо операция CRUD ?

Заранее спасибо

Angshuman

1 Ответ

0 голосов
/ 24 октября 2019

Коннектор Spring Cassandra использует Java-клиент Datastax под капотом, здесь вы можете увидеть, как создать клиентское соединение .

Набор результатов, содержащий результат, содержит списокЗапрошено несколько хостов:

Cluster.Builder b = Cluster.builder().addContactPoint("127.0.0.1");
Cluster cluster = b.build();
Session session = cluster.connect();

SimpleStatement ss = new SimpleStatement("SELECT * FROM system_schema.tables LIMIT 1");
ss.setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM);

ResultSet rs = session.execute(ss);
for (Row r : rs.all()) {
    System.out.println("res: " + r);
}

// you can get the contacted hosts here, this will show you what node 
// coordinated the request from the Cassandra side. 
for (ExecutionInfo ei : rs.getAllExecutionInfo()) {
    System.out.println("Host queried: " + ei.getQueriedHost().getAddress());
}

Пример вывода:

res: Row[...]
Host queried: /127.0.0.1
Host queried: /127.0.0.2
Host queried: /127.0.0.3
...