Search in sources :

Example 1 with EurekaInstanceRegisteredEvent

use of org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent in project spring-boot by Linda-Tan.

the class EurekaInstanceCanceledListener method onApplicationEvent.

@Override
public void onApplicationEvent(ApplicationEvent applicationEvent) {
    // 服务挂掉自动通知
    if (applicationEvent instanceof EurekaInstanceCanceledEvent) {
        EurekaInstanceCanceledEvent event = (EurekaInstanceCanceledEvent) applicationEvent;
        // 获取当前Eureka示例中的节点信息
        PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry();
        Applications applications = registry.getApplications();
        // 便利获取已注册节点中与当前失效节点ID一致 的节点信息
        applications.getRegisteredApplications().forEach(registryApplication -> {
            registryApplication.getInstances().forEach(instance -> {
                if (Objects.equals(instance.getInstanceId(), event.getServerId())) {
                    log.info("服务:{}挂啦。。。", instance.getAppName());
                // emailService.send(new SimpleMailMessage());
                }
            });
        });
    }
    if (applicationEvent instanceof EurekaInstanceRegisteredEvent) {
        EurekaInstanceRegisteredEvent event = (EurekaInstanceRegisteredEvent) applicationEvent;
        log.info("服务:{}注册成功啦。。。", event.getInstanceInfo().getAppName());
    }
    if (applicationEvent instanceof EurekaInstanceRenewedEvent) {
        EurekaInstanceRenewedEvent event = (EurekaInstanceRenewedEvent) applicationEvent;
        log.info("心跳检测服务:{}。。。", event.getInstanceInfo().getAppName());
    }
    if (applicationEvent instanceof EurekaRegistryAvailableEvent) {
        log.info("服务 Available。。。");
    }
}
Also used : EurekaInstanceRenewedEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRenewedEvent) Applications(com.netflix.discovery.shared.Applications) EurekaInstanceCanceledEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent) EurekaRegistryAvailableEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaRegistryAvailableEvent) PeerAwareInstanceRegistry(com.netflix.eureka.registry.PeerAwareInstanceRegistry) EurekaInstanceRegisteredEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent)

Example 2 with EurekaInstanceRegisteredEvent

use of org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent in project spring-cloud-netflix by spring-cloud.

the class InstanceRegistryTests method testRegister.

@Test
public void testRegister() throws Exception {
    // creating instance info
    final LeaseInfo leaseInfo = getLeaseInfo();
    final InstanceInfo instanceInfo = getInstanceInfo(APP_NAME, HOST_NAME, INSTANCE_ID, PORT, leaseInfo);
    // calling tested method
    instanceRegistry.register(instanceInfo, false);
    // event of proper type is registered
    assertEquals(1, this.testEvents.applicationEvents.size());
    assertTrue(this.testEvents.applicationEvents.get(0) instanceof EurekaInstanceRegisteredEvent);
    // event details are correct
    final EurekaInstanceRegisteredEvent registeredEvent = (EurekaInstanceRegisteredEvent) (this.testEvents.applicationEvents.get(0));
    assertEquals(instanceInfo, registeredEvent.getInstanceInfo());
    assertEquals(leaseInfo.getDurationInSecs(), registeredEvent.getLeaseDuration());
    assertEquals(instanceRegistry, registeredEvent.getSource());
    assertFalse(registeredEvent.isReplication());
}
Also used : LeaseInfo(com.netflix.appinfo.LeaseInfo) InstanceInfo(com.netflix.appinfo.InstanceInfo) EurekaInstanceRegisteredEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 3 with EurekaInstanceRegisteredEvent

use of org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent in project spring-cloud-netflix by spring-cloud.

the class InstanceRegistryTests method testDefaultLeaseDurationRegisterEvent.

@Test
public void testDefaultLeaseDurationRegisterEvent() throws Exception {
    // creating instance info
    final InstanceInfo instanceInfo = getInstanceInfo(APP_NAME, HOST_NAME, INSTANCE_ID, PORT, null);
    // calling tested method
    instanceRegistry.register(instanceInfo, false);
    // instance info duration is set to default
    final EurekaInstanceRegisteredEvent registeredEvent = (EurekaInstanceRegisteredEvent) (this.testEvents.applicationEvents.get(0));
    assertEquals(LeaseInfo.DEFAULT_LEASE_DURATION, registeredEvent.getLeaseDuration());
}
Also used : InstanceInfo(com.netflix.appinfo.InstanceInfo) EurekaInstanceRegisteredEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 4 with EurekaInstanceRegisteredEvent

use of org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent in project spring-cloud-netflix by spring-cloud.

the class InstanceRegistry method handleRegistration.

private void handleRegistration(InstanceInfo info, int leaseDuration, boolean isReplication) {
    log("register " + info.getAppName() + ", vip " + info.getVIPAddress() + ", leaseDuration " + leaseDuration + ", isReplication " + isReplication);
    publishEvent(new EurekaInstanceRegisteredEvent(this, info, leaseDuration, isReplication));
}
Also used : EurekaInstanceRegisteredEvent(org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent)

Aggregations

EurekaInstanceRegisteredEvent (org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent)4 InstanceInfo (com.netflix.appinfo.InstanceInfo)2 Test (org.junit.Test)2 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 LeaseInfo (com.netflix.appinfo.LeaseInfo)1 Applications (com.netflix.discovery.shared.Applications)1 PeerAwareInstanceRegistry (com.netflix.eureka.registry.PeerAwareInstanceRegistry)1 EurekaInstanceCanceledEvent (org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent)1 EurekaInstanceRenewedEvent (org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRenewedEvent)1 EurekaRegistryAvailableEvent (org.springframework.cloud.netflix.eureka.server.event.EurekaRegistryAvailableEvent)1