1.增加发送副本的代码。保证副本至少发送两份。
This commit is contained in:
parent
59f21b8879
commit
515028d0a7
|
|
@ -84,7 +84,7 @@ public class DataSenderFactoryWithBalance {
|
|||
|
||||
// 获取连接
|
||||
public static IDataSender getSender() {
|
||||
DataSender readySender = null;
|
||||
DataSenderWithCopies readySender = new DataSenderWithCopies(maxKeepConnectingSenderSize);
|
||||
while (true) {
|
||||
try {
|
||||
if (usingDataSender.size() == 0) {
|
||||
|
|
@ -98,7 +98,11 @@ public class DataSenderFactoryWithBalance {
|
|||
int index = ThreadLocalRandom.current().nextInt(0,
|
||||
usingDataSender.size());
|
||||
if (usingDataSender.get(index).getStatus() == DataSender.SenderStatus.READY) {
|
||||
readySender = usingDataSender.get(index);
|
||||
while(readySender.append(usingDataSender.get(index))){
|
||||
if(++index == usingDataSender.size()){
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,17 @@ public class DataSenderWithCopies implements IDataSender{
|
|||
* 尝试向所有副本发送
|
||||
*/
|
||||
public boolean send(String data) {
|
||||
return false;
|
||||
int successNum = 0;
|
||||
for(IDataSender sender : senders){
|
||||
if(sender.send(data)){
|
||||
successNum++;
|
||||
}
|
||||
}
|
||||
if(successNum >= 2){
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue