#java #cassandra #cassandra-3.0 #astyanax
#java #cassandra #cassandra-3.0 #astyanax
Вопрос:
Я пытаюсь выполнить запрос на Cassandra. используемый порт 9160. Запущен сервер Thrift. с помощью следующей команды. ./nodetool позволяет использовать Cassandra 3.0.9
Caused by: ! com.netflix.astyanax.connectionpool.exceptions.TransportException: TransportException: [host=127.0.0.1(127.0.0.1):9160, latency=23(23), attempts=1]org.apache.thrift.transport.TTransportException
! at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:197)
! at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65)
! at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:28)
! at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.execute(ThriftSyncConnectionFactoryImpl.java:151)
! at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:69)
! at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:256)
! at com.netflix.astyanax.thrift.AbstractThriftCqlQuery$3.execute(AbstractThriftCqlQuery.java:80)
! at lithium.cassandra.dao.AbstractCassandraDao.executeQuery(AbstractCassandraDao.java:84)
!... 60 common frames omitted
Caused by: ! org.apache.thrift.transport.TTransportException: null
! at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
! at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
! at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
! at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
! at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
! at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
! at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
! at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
! at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
! at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_prepared_cql3_query(Cassandra.java:1689)
! at org.apache.cassandra.thrift.Cassandra$Client.execute_prepared_cql3_query(Cassandra.java:1674)
! at com.netflix.astyanax.thrift.ThriftCql3Query.execute_prepared_cql_query(ThriftCql3Query.java:29)
! at com.netflix.astyanax.thrift.AbstractThriftCqlQuery$3$1.internalExecute(AbstractThriftCqlQuery.java:92)
! at com.netflix.astyanax.thrift.AbstractThriftCqlQuery$3$1.internalExecute(AbstractThriftCqlQuery.java:82)
! at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60)
!... 66 common frames omitted```
Комментарии:
1. один вопрос — вам действительно нужно использовать Thrift? Он в основном мертв в течение длительного времени
2. Да, это часть действительно старого и огромного проекта. Не удается его изменить.
3. Извините, но вы не найдете большой помощи для устаревшего драйвера, который использует устаревший протокол.
Ответ №1:
Я столкнулся с этой проблемой, потому что у меня было несколько потоков, но данные, которые мне приходилось обрабатывать, были огромными с каждым запросом. (200000 объектов, которые необходимо обработать как часть одного запроса. и каждый объект был помещен в очередь.) Как только я уменьшил количество полученных объектов, проблема была решена.
Комментарии:
1. Не могли бы вы подробнее рассказать о том, как вы решили проблему? Что именно вы изменили и как. Надеюсь, ваш ответ будет полезен другим с аналогичными проблемами.