powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Cassandra, Hector и обрыв соединения
1 сообщений из 1, страница 1 из 1
Cassandra, Hector и обрыв соединения
    #37789235
Devider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо поднимать соединение с БД при перезапуске кассандры. Нашел такие вещи, как CassandraHostConfigurator#setRetryDownedHosts() и прочее. Пробую:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public class App {

	public static void main(String[] args) throws Exception {
		StringSerializer ss = StringSerializer.get();
		String cf = "TEST";

		CassandraHostConfigurator conf = new CassandraHostConfigurator("localhost:9160");
		conf.setCassandraThriftSocketTimeout(40000);
		conf.setExhaustedPolicy(ExhaustedPolicy.WHEN_EXHAUSTED_BLOCK);
		conf.setRetryDownedHostsDelayInSeconds(5);
		conf.setRetryDownedHostsQueueSize(128);
		conf.setRetryDownedHosts(true);
		conf.setLoadBalancingPolicy(new LeastActiveBalancingPolicy());
		Cluster cluster = HFactory.getOrCreateCluster("ASG", conf);
		String key = Long.toString(System.currentTimeMillis());
		int count = 0;
		while (!"q".equals(new Scanner( System.in).next())) {
			try{
				Keyspace keyspace = HFactory.createKeyspace("ASG", cluster);
				Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get());
				mutator.insert(key, cf, HFactory.createColumn("column_" + count, "v_" + count, ss, ss));
				count++;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}



Далее запускаю, записываю прогоняю пару итераций, роняю кассандру, пробую записать еще, получаю эксепшн, поднимаю кассандру, жду несколько секунд, пробую еще несколько раз, получаю все равно эксепшн. В логах это выглядит так:
[13:08:55] INFO [CassandraHostRetryService ] Downed Host Retry service started with queue size 128 and retry delay 5s
[13:08:55] INFO [JmxMonitor ] Registering JMX me.prettyprint.cassandra.service_ASG:ServiceType=hector,MonitorType=hector
[13:09:05] ERROR [HThriftClient ] Could not flush transport (to be expected if the pool is shutting down) in close for client: CassandraClient<localhost:9160-3>
org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:147)
at org.apache.thrift.transport.TFramedTransport.flush(TFramedTransport.java:156)
at me.prettyprint.cassandra.connection.client.HThriftClient.close(HThriftClient.java:98)
at me.prettyprint.cassandra.connection.client.HThriftClient.close(HThriftClient.java:26)
at me.prettyprint.cassandra.connection.HConnectionManager.closeClient(HConnectionManager.java:308)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:257)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
at me.prettyprint.cassandra.model.MutatorImpl.insert(MutatorImpl.java:69)
at com.app.App.main(App.java:40)
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:145)
... 9 more
[13:09:05] ERROR [HConnectionManager ] MARK HOST AS DOWN TRIGGERED for host localhost(127.0.0.1):9160
[13:09:05] ERROR [HConnectionManager ] Pool state on shutdown: <ConcurrentCassandraClientPoolByHost>:{localhost(127.0.0.1):9160}; IsActive?: true; Active: 1; Blocked: 0; Idle: 15; NumBeforeExhausted: 49
[13:09:05] INFO [ConcurrentHClientPool ] Shutdown triggered on <ConcurrentCassandraClientPoolByHost>:{localhost(127.0.0.1):9160}
[13:09:05] INFO [ConcurrentHClientPool ] Shutdown complete on <ConcurrentCassandraClientPoolByHost>:{localhost(127.0.0.1):9160}
[13:09:05] INFO [CassandraHostRetryService ] Host detected as down was added to retry queue: localhost(127.0.0.1):9160
[13:09:05] WARN [HConnectionManager ] Could not fullfill request on this host CassandraClient<localhost:9160-3>
[13:09:05] WARN [HConnectionManager ] Exception:
me.prettyprint.hector.api.exceptions.HectorTransportException: org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
at me.prettyprint.cassandra.connection.client.HThriftClient.getCassandra(HThriftClient.java:82)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:236)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
at me.prettyprint.cassandra.model.MutatorImpl.insert(MutatorImpl.java:69)
at com.app.App.main(App.java:40)
Caused by: org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:147)
at org.apache.thrift.transport.TFramedTransport.flush(TFramedTransport.java:157)
at org.apache.cassandra.thrift.Cassandra$Client.send_set_keyspace(Cassandra.java:466)
at org.apache.cassandra.thrift.Cassandra$Client.set_keyspace(Cassandra.java:455)
at me.prettyprint.cassandra.connection.client.HThriftClient.getCassandra(HThriftClient.java:78)
... 5 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:145)
... 9 more
[13:09:05] INFO [HConnectionManager ] Client CassandraClient<localhost:9160-3> released to inactive or dead pool. Closing.
[13:09:05] WARN [CassandraHostRetryService ] Downed localhost(127.0.0.1):9160 host still appears to be down: Unable to open transport to localhost(127.0.0.1):9160 , java.net.ConnectException: Connection refused
[13:09:05] INFO [HConnectionManager ] Client CassandraClient<localhost:9160-3> released to inactive or dead pool. Closing.


ЧЯДНТ?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Cassandra, Hector и обрыв соединения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]