Browse Source

Update connect's cache of peers

tags/1.1.11
shaozhuguang 5 years ago
parent
commit
b0b0185faf
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java

+ 7
- 1
source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java View File

@@ -293,6 +293,7 @@ public class PeerConnectionManager implements PeerService, PeerConnector {

// 查询其他所有节点对应的区块高度的情况
NetworkAddress defaultPeerAddress = null, latestPeerAddress = null;
Map<NetworkAddress, PeerBlockchainServiceFactory> tmpEntries = new ConcurrentHashMap<>();
for (Map.Entry<NetworkAddress, PeerBlockchainServiceFactory> entry : peerBlockchainServiceFactories.entrySet()) {
PeerBlockchainServiceFactory sf = entry.getValue();
if (sf != serviceFactory) {
@@ -311,7 +312,9 @@ public class PeerConnectionManager implements PeerService, PeerConnector {
try {
PeerBlockchainServiceFactory peerServiceFactory = PeerBlockchainServiceFactory.connect(
gateWayKeyPair, peerAddress, peerProviders);
peerBlockchainServiceFactories.put(peerAddress, peerServiceFactory);
if (peerServiceFactory != null) {
tmpEntries.put(peerAddress, peerServiceFactory);
}
} catch (Exception ee) {
LOGGER.error(String.format("Peer[%s] reconnect fail !!!",
entry.getKey()), e);
@@ -321,6 +324,9 @@ public class PeerConnectionManager implements PeerService, PeerConnector {
defaultPeerAddress = entry.getKey();
}
}
if (!tmpEntries.isEmpty()) {
peerBlockchainServiceFactories.putAll(tmpEntries);
}
LOGGER.info("Ledger[{}]'s master remote update to {}", ledgerHash.toBase58(),
latestPeerAddress == null ? defaultPeerAddress : latestPeerAddress);
}


Loading…
Cancel
Save