Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Cassandra, Hector и обрыв соединения / 1 сообщений из 1, страница 1 из 1
11.05.2012, 13:10:09
    #37789235
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cassandra, Hector и обрыв соединения
Необходимо поднимать соединение с БД при перезапуске кассандры. Нашел такие вещи, как 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
Форумы / Java [игнор отключен] [закрыт для гостей] / Cassandra, Hector и обрыв соединения / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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