metadataMap.put(entry.getKey(), entry.getValue().get(0)); registry.register(instanceInfo, false); return Response.ok().build(); } catch (Throwable e) {
registry.register(info, "true".equals(isReplication)); return Response.status(204).build(); // 204 to be backwards compatible
/** * Synchronize {@link InstanceInfo} information if the timestamp between * this node and the peer eureka nodes vary. */ private void syncInstancesIfTimestampDiffers(String appName, String id, InstanceInfo info, InstanceInfo infoFromPeer) { try { if (infoFromPeer != null) { logger.warn("Peer wants us to take the instance information from it, since the timestamp differs," + "Id : {} My Timestamp : {}, Peer's timestamp: {}", id, info.getLastDirtyTimestamp(), infoFromPeer.getLastDirtyTimestamp()); if (infoFromPeer.getOverriddenStatus() != null && !InstanceStatus.UNKNOWN.equals(infoFromPeer.getOverriddenStatus())) { logger.warn("Overridden Status info -id {}, mine {}, peer's {}", id, info.getOverriddenStatus(), infoFromPeer.getOverriddenStatus()); registry.storeOverriddenStatusIfRequired(appName, id, infoFromPeer.getOverriddenStatus()); } registry.register(infoFromPeer, true); } } catch (Throwable e) { logger.warn("Exception when trying to set information from peer :", e); } }
@Test public void testHeartbeatWithInstanceInfoFromPeer() throws Throwable { InstanceInfo instanceInfoFromPeer = ClusterSampleData.newInstanceInfo(2); httpReplicationClient.withNetworkStatusCode(200); httpReplicationClient.withBatchReply(400); httpReplicationClient.withInstanceInfo(instanceInfoFromPeer); // InstanceInfo in response from peer will trigger local registry call createPeerEurekaNode().heartbeat(instanceInfo.getAppName(), instanceInfo.getId(), instanceInfo, null, false); expectRequestType(RequestType.Batch); // Check that registry has instanceInfo from peer verify(registry, timeout(1000).times(1)).register(instanceInfoFromPeer, true); }
metadataMap.put(entry.getKey(), entry.getValue().get(0)); registry.register(instanceInfo, false); return Response.ok().build(); } catch (Throwable e) {
registry.register(info, "true".equals(isReplication)); return Response.status(204).build(); // 204 to be backwards compatible
/** * Synchronize {@link InstanceInfo} information if the timestamp between * this node and the peer eureka nodes vary. */ private void syncInstancesIfTimestampDiffers(String appName, String id, InstanceInfo info, InstanceInfo infoFromPeer) { try { if (infoFromPeer != null) { logger.warn("Peer wants us to take the instance information from it, since the timestamp differs," + "Id : {} My Timestamp : {}, Peer's timestamp: {}", id, info.getLastDirtyTimestamp(), infoFromPeer.getLastDirtyTimestamp()); if (infoFromPeer.getOverriddenStatus() != null && !InstanceStatus.UNKNOWN.equals(infoFromPeer.getOverriddenStatus())) { logger.warn("Overridden Status info -id {}, mine {}, peer's {}", id, info.getOverriddenStatus(), infoFromPeer.getOverriddenStatus()); registry.storeOverriddenStatusIfRequired(appName, id, infoFromPeer.getOverriddenStatus()); } registry.register(infoFromPeer, true); } } catch (Throwable e) { logger.warn("Exception when trying to set information from peer :", e); } }