0
現在、CassandraクライアントをHectorからJavaドライバに移行していますが、既に切断されている同じDCへのクライアント要求が繰り返されるのを避けるためにConnectionListenerの置換を見つけることができません何らかの理由で。CassandraクライアントHectorからJavaドライバへの移行 - ConnectionListenerの置き換え
コード:
if(getClusterConnectionListenerForDCId(dcId).isAllHostsInThisDCClusterDown())
{
/* directly return failure w/o even trying: this is vital, because if we keep trying to write to a all-downed cluster again and again,and since hector is stupid enough not to skip writing to cluster given that it already knew the cluster is all down, every single remote local-quorum call will need to wait until timeout (10 second) again and again, when cross-DC channel has hiccup.
*/
return false;
}
//overridden function of ConnectionManagerListener
@Override
public void onAllHostsDown() {
//when all hosts are down for a particular cluster, we want to disable writing to that particular cluser
//until at least one host of the cluster recovers
mIsAllHostsInThisDCClusterDown = true;
smIsAnyDCClusterAllHostsDown = true;
logger.warn("all hosts are down for DC: " + mDcId);
}