Şu anda Cassandra istemcisini Hector'tan Java sürücüsüne geçiriyoruz ancak ConnectionListener için değiştirmeyi bulamadık, çünkü bu durum zaten aynı olan DC'ye tekrarlanan istemci isteklerini önlemek için kullanılıyor bazı sebeplerden dolayı.Cassandra istemcisinin Hector'un java sürücüsüne geçirilmesi - ConnectionListener için değiştirme
Kodu:
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);
}