Java源码示例:com.netflix.eureka.registry.PeerAwareInstanceRegistry
示例1
private Map<String, Object> getEurekaStatus() {
Map<String, Object> stats = new HashMap<>();
stats.put("time", new Date());
stats.put("currentTime", StatusResource.getCurrentTimeAsString());
stats.put("upTime", StatusInfo.getUpTime());
stats.put("environment", ConfigurationManager.getDeploymentContext()
.getDeploymentEnvironment());
stats.put("datacenter", ConfigurationManager.getDeploymentContext()
.getDeploymentDatacenter());
PeerAwareInstanceRegistry registry = getRegistry();
stats.put("isBelowRenewThreshold", registry.isBelowRenewThresold() == 1);
populateInstanceInfo(stats);
return stats;
}
示例2
/**
* Reloads all statically defined APIs in locations specified by configuration
* by reading the definitions again.
*/
public synchronized StaticRegistrationResult reloadServices() {
List<InstanceInfo> oldStaticInstances = new ArrayList<>(staticInstances);
staticInstances.clear();
StaticRegistrationResult result = registerServices(staticApiDefinitionsDirectories);
PeerAwareInstanceRegistry registry = getRegistry();
for (InstanceInfo info: oldStaticInstances) {
if (!result.getRegisteredServices().contains(info.getInstanceId())) {
log.info("Instance {} is not defined in the new static API definitions. It will be removed", info.getInstanceId());
registry.cancel(info.getAppName(), info.getId(), false);
}
}
return result;
}
示例3
/**
* Registers all statically defined APIs in a directory.
*/
StaticRegistrationResult registerServices(String staticApiDefinitionsDirectories) {
PeerAwareInstanceRegistry registry = getRegistry();
StaticRegistrationResult result = serviceDefinitionProcessor.findStaticServicesData(staticApiDefinitionsDirectories);
// at first register service additional data, becase static could be also updated
final Map<String, ServiceOverrideData> additionalServiceMetadata = result.getAdditionalServiceMetadata();
metadataDefaultsService.setAdditionalServiceMetadata(additionalServiceMetadata);
// register static services
for (InstanceInfo instanceInfo : result.getInstances()) {
result.getRegisteredServices().add(instanceInfo.getInstanceId());
staticInstances.add(instanceInfo);
registry.register(instanceInfo, false);
}
return result;
}
示例4
private Map<String, Object> getEurekaStatus() {
Map<String, Object> stats = new HashMap<>();
stats.put("time", new Date());
stats.put("currentTime", StatusResource.getCurrentTimeAsString());
stats.put("upTime", StatusInfo.getUpTime());
stats.put("environment", ConfigurationManager.getDeploymentContext()
.getDeploymentEnvironment());
stats.put("datacenter", ConfigurationManager.getDeploymentContext()
.getDeploymentDatacenter());
PeerAwareInstanceRegistry registry = getRegistry();
stats.put("isBelowRenewThreshold", registry.isBelowRenewThresold() == 1);
populateInstanceInfo(stats);
return stats;
}
示例5
private void populateHeader(Map<String, Object> model) {
model.put("currentTime", StatusResource.getCurrentTimeAsString());
model.put("upTime", StatusInfo.getUpTime());
model.put("environment", ConfigurationManager.getDeploymentContext()
.getDeploymentEnvironment());
model.put("datacenter", ConfigurationManager.getDeploymentContext()
.getDeploymentDatacenter());
PeerAwareInstanceRegistry registry = getRegistry();
model.put("registry", registry);
model.put("isBelowRenewThresold", registry.isBelowRenewThresold() == 1);
DataCenterInfo info = applicationInfoManager.getInfo().getDataCenterInfo();
if (info.getName() == DataCenterInfo.Name.Amazon) {
AmazonInfo amazonInfo = (AmazonInfo) info;
model.put("amazonInfo", amazonInfo);
model.put("amiId", amazonInfo.get(AmazonInfo.MetaDataKey.amiId));
model.put("availabilityZone",
amazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone));
model.put("instanceId", amazonInfo.get(AmazonInfo.MetaDataKey.instanceId));
}
}
示例6
private Map<String, Object> getEurekaStatus() {
Map<String, Object> stats = new HashMap<>();
stats.put("time", new Date());
stats.put("currentTime", StatusResource.getCurrentTimeAsString());
stats.put("upTime", StatusInfo.getUpTime());
stats.put("environment", ConfigurationManager.getDeploymentContext()
.getDeploymentEnvironment());
stats.put("datacenter", ConfigurationManager.getDeploymentContext()
.getDeploymentDatacenter());
PeerAwareInstanceRegistry registry = getRegistry();
stats.put("isBelowRenewThreshold", registry.isBelowRenewThresold() == 1);
populateInstanceInfo(stats);
return stats;
}
示例7
private void populateHeader(Map<String, Object> model) {
model.put("currentTime", StatusResource.getCurrentTimeAsString());
model.put("upTime", StatusInfo.getUpTime());
model.put("environment", "N/A"); // FIXME:
model.put("datacenter", "N/A"); // FIXME:
PeerAwareInstanceRegistry registry = getRegistry();
model.put("registry", registry);
model.put("isBelowRenewThresold", registry.isBelowRenewThresold() == 1);
DataCenterInfo info = applicationInfoManager.getInfo().getDataCenterInfo();
if (info.getName() == DataCenterInfo.Name.Amazon) {
AmazonInfo amazonInfo = (AmazonInfo) info;
model.put("amazonInfo", amazonInfo);
model.put("amiId", amazonInfo.get(AmazonInfo.MetaDataKey.amiId));
model.put("availabilityZone",
amazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone));
model.put("instanceId", amazonInfo.get(AmazonInfo.MetaDataKey.instanceId));
}
}
示例8
@Bean
public EurekaServerContext testEurekaServerContext(ServerCodecs serverCodecs,
PeerAwareInstanceRegistry registry, PeerEurekaNodes peerEurekaNodes,
ApplicationInfoManager applicationInfoManager,
EurekaServerConfig eurekaServerConfig) {
return new DefaultEurekaServerContext(eurekaServerConfig, serverCodecs,
registry, peerEurekaNodes, applicationInfoManager) {
@Override
public void shutdown() {
logger.info(
"Shutting down (except ServoControl and EurekaMonitors)..");
registry.shutdown();
peerEurekaNodes.shutdown();
// ServoControl.shutdown();
// EurekaMonitors.shutdown();
logger.info("Shut down");
}
};
}
示例9
/**
* 获取eureka注册节点
*
* @return List<AnalyzeInstance>
*/
public static List<AnalyzeInstance> getRegisterNodes() {
PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry();
Applications applications = registry.getApplications();
List<AnalyzeInstance> analyzes = new ArrayList<>();
applications.getRegisteredApplications().forEach((registeredApplication) -> {
registeredApplication.getInstances().forEach((instance) -> {
AnalyzeInstance analyzeInstance = new AnalyzeInstance(instance.getIPAddr(), instance.getPort());
analyzes.add(analyzeInstance);
});
});
return analyzes;
}
示例10
public CustomRefreshablePeerEurekaNodes(
final PeerAwareInstanceRegistry registry,
final EurekaServerConfig serverConfig,
final EurekaClientConfig clientConfig,
final ServerCodecs serverCodecs,
final ApplicationInfoManager applicationInfoManager) {
super(registry, serverConfig, clientConfig, serverCodecs, applicationInfoManager);
}
示例11
protected PeerEurekaNodes getPeerEurekaNodes(PeerAwareInstanceRegistry registry, EurekaServerConfig eurekaServerConfig, EurekaClientConfig eurekaClientConfig, ServerCodecs serverCodecs, ApplicationInfoManager applicationInfoManager) {
return new PeerEurekaNodes(
registry,
eurekaServerConfig,
eurekaClientConfig,
serverCodecs,
applicationInfoManager
);
}
示例12
synchronized void renewInstances() {
log.debug("Renewing static instances");
PeerAwareInstanceRegistry registry = getRegistry();
for (InstanceInfo instance : getStaticInstances()) {
registry.renew(instance.getAppName(), instance.getId(), false);
}
}
示例13
private List<InstanceInfo> getGatewayInstances() {
final PeerAwareInstanceRegistry registry = getRegistry();
final Application application = registry.getApplication(GATEWAY_SERVICE_ID);
if (application == null) {
logger.log("org.zowe.apiml.discovery.errorNotifyingGateway");
return Collections.emptyList();
}
return application.getInstances();
}
示例14
@Before
public void setUp() {
mockRegistry = mock(PeerAwareInstanceRegistry.class);
EurekaServerContext mockEurekaServerContext = mock(EurekaServerContext.class);
when(mockEurekaServerContext.getRegistry()).thenReturn(mockRegistry);
EurekaServerContextHolder.initialize(mockEurekaServerContext);
}
示例15
@Before
public void setUp() {
mockRegistry = mock(PeerAwareInstanceRegistry.class);
doAnswer(x -> {
EurekaInstanceRegisteredEvent event = mock(EurekaInstanceRegisteredEvent.class);
when(event.getInstanceInfo()).thenReturn(x.getArgument(0));
eurekaInstanceRegisteredListener.listen(event);
return mockRegistry;
}).when(mockRegistry).register(any(), anyBoolean());
EurekaServerContext mockEurekaServerContext = mock(EurekaServerContext.class);
when(mockEurekaServerContext.getRegistry()).thenReturn(mockRegistry);
EurekaServerContextHolder.initialize(mockEurekaServerContext);
}
示例16
@Bean
@ConditionalOnMissingBean
public RegistrationService registrationService(PeerAwareInstanceRegistry peerAwareInstanceRegistry) {
Assert.isTrue(peerAwareInstanceRegistry instanceof RegistrationEventInstanceRegistry,
"Instance Registry must be of type" + RegistrationEventInstanceRegistry.class.getName());
return new RegistrationService(peerAwareInstanceRegistry, serviceChangeDetector());
}
示例17
/**
* 获取eureka注册节点
*
* @return List<AnalyzeInstance>
*/
public static List<AnalyzeInstance> getRegisterNodes() {
PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry();
Applications applications = registry.getApplications();
List<AnalyzeInstance> analyzes = new ArrayList<>();
applications.getRegisteredApplications().forEach((registeredApplication) -> {
registeredApplication.getInstances().forEach((instance) -> {
AnalyzeInstance analyzeInstance = new AnalyzeInstance(instance.getIPAddr(), instance.getPort());
analyzes.add(analyzeInstance);
});
});
return analyzes;
}
示例18
public EurekaServerBootstrap(ApplicationInfoManager applicationInfoManager,
EurekaClientConfig eurekaClientConfig, EurekaServerConfig eurekaServerConfig,
PeerAwareInstanceRegistry registry, EurekaServerContext serverContext) {
this.applicationInfoManager = applicationInfoManager;
this.eurekaClientConfig = eurekaClientConfig;
this.eurekaServerConfig = eurekaServerConfig;
this.registry = registry;
this.serverContext = serverContext;
}
示例19
@Bean
public PeerAwareInstanceRegistry peerAwareInstanceRegistry(
ServerCodecs serverCodecs) {
this.eurekaClient.getApplications(); // force initialization
return new InstanceRegistry(this.eurekaServerConfig, this.eurekaClientConfig,
serverCodecs, this.eurekaClient,
this.instanceRegistryProperties.getExpectedNumberOfRenewsPerMin(),
this.instanceRegistryProperties.getDefaultOpenForTrafficCount());
}
示例20
@Bean
@ConditionalOnMissingBean
public PeerEurekaNodes peerEurekaNodes(PeerAwareInstanceRegistry registry,
ServerCodecs serverCodecs) {
return new PeerEurekaNodes(registry, this.eurekaServerConfig,
this.eurekaClientConfig, serverCodecs, this.applicationInfoManager);
}
示例21
@Bean
public EurekaServerBootstrap eurekaServerBootstrap(PeerAwareInstanceRegistry registry,
EurekaServerContext serverContext) {
return new EurekaServerBootstrap(this.applicationInfoManager,
this.eurekaClientConfig, this.eurekaServerConfig, registry,
serverContext);
}
示例22
@Before
public void setup() throws Exception {
PeerEurekaNodes peerEurekaNodes = mock(PeerEurekaNodes.class);
when(peerEurekaNodes.getPeerNodesView()).thenReturn(Collections.<PeerEurekaNode>emptyList());
InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder()
.setAppName("test")
.setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn))
.build();
this.infoManager = mock(ApplicationInfoManager.class);
this.original = ApplicationInfoManager.getInstance();
setInstance(this.infoManager);
when(this.infoManager.getInfo()).thenReturn(instanceInfo);
Application myapp = new Application("myapp");
myapp.addInstance(InstanceInfo.Builder.newBuilder()
.setAppName("myapp")
.setDataCenterInfo(new MyDataCenterInfo(DataCenterInfo.Name.MyOwn))
.setInstanceId("myapp:1")
.build());
ArrayList<Application> applications = new ArrayList<>();
applications.add(myapp);
PeerAwareInstanceRegistry registry = mock(PeerAwareInstanceRegistry.class);
when(registry.getSortedApplications()).thenReturn(applications);
EurekaServerContext serverContext = mock(EurekaServerContext.class);
EurekaServerContextHolder.initialize(serverContext);
when(serverContext.getRegistry()).thenReturn(registry);
when(serverContext.getPeerEurekaNodes()).thenReturn(peerEurekaNodes);
when(serverContext.getApplicationInfoManager()).thenReturn(this.infoManager);
}
示例23
@Bean
public PeerEurekaNodes myPeerEurekaNodes(PeerAwareInstanceRegistry registry,
EurekaServerConfig eurekaServerConfig,
EurekaClientConfig eurekaClientConfig, ServerCodecs serverCodecs,
ApplicationInfoManager applicationInfoManager) {
return new CustomEurekaPeerNodes(registry, eurekaServerConfig,
eurekaClientConfig, serverCodecs, applicationInfoManager);
}
示例24
public CustomEurekaPeerNodes(PeerAwareInstanceRegistry registry,
EurekaServerConfig serverConfig, EurekaClientConfig clientConfig,
ServerCodecs serverCodecs,
ApplicationInfoManager applicationInfoManager) {
super(registry, serverConfig, clientConfig, serverCodecs,
applicationInfoManager);
}
示例25
public EurekaServerBootstrap(ApplicationInfoManager applicationInfoManager,
EurekaClientConfig eurekaClientConfig, EurekaServerConfig eurekaServerConfig,
PeerAwareInstanceRegistry registry, EurekaServerContext serverContext) {
this.applicationInfoManager = applicationInfoManager;
this.eurekaClientConfig = eurekaClientConfig;
this.eurekaServerConfig = eurekaServerConfig;
this.registry = registry;
this.serverContext = serverContext;
}
示例26
@Bean
public PeerAwareInstanceRegistry peerAwareInstanceRegistry(
ServerCodecs serverCodecs) {
this.eurekaClient.getApplications(); // force initialization
return new InstanceRegistry(this.eurekaServerConfig, this.eurekaClientConfig,
serverCodecs, this.eurekaClient,
this.instanceRegistryProperties.getExpectedNumberOfClientsSendingRenews(),
this.instanceRegistryProperties.getDefaultOpenForTrafficCount());
}
示例27
@Bean
@ConditionalOnMissingBean
public PeerEurekaNodes peerEurekaNodes(PeerAwareInstanceRegistry registry,
ServerCodecs serverCodecs,
ReplicationClientAdditionalFilters replicationClientAdditionalFilters) {
return new RefreshablePeerEurekaNodes(registry, this.eurekaServerConfig,
this.eurekaClientConfig, serverCodecs, this.applicationInfoManager,
replicationClientAdditionalFilters);
}
示例28
@Bean
@ConditionalOnMissingBean
public EurekaServerContext eurekaServerContext(ServerCodecs serverCodecs,
PeerAwareInstanceRegistry registry, PeerEurekaNodes peerEurekaNodes) {
return new DefaultEurekaServerContext(this.eurekaServerConfig, serverCodecs,
registry, peerEurekaNodes, this.applicationInfoManager);
}
示例29
@Bean
public EurekaServerBootstrap eurekaServerBootstrap(PeerAwareInstanceRegistry registry,
EurekaServerContext serverContext) {
return new EurekaServerBootstrap(this.applicationInfoManager,
this.eurekaClientConfig, this.eurekaServerConfig, registry,
serverContext);
}
示例30
RefreshablePeerEurekaNodes(final PeerAwareInstanceRegistry registry,
final EurekaServerConfig serverConfig,
final EurekaClientConfig clientConfig, final ServerCodecs serverCodecs,
final ApplicationInfoManager applicationInfoManager,
final ReplicationClientAdditionalFilters replicationClientAdditionalFilters) {
super(registry, serverConfig, clientConfig, serverCodecs,
applicationInfoManager);
this.replicationClientAdditionalFilters = replicationClientAdditionalFilters;
}