Search in sources :

Example 1 with DefaultServerCodecs

use of com.netflix.eureka.resources.DefaultServerCodecs in project eureka by Netflix.

the class ResponseCacheTest method setUp.

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    // create a new registry that is sync'ed up with the default registry in the AbstractTester,
    // but disable transparent fetch to the remote for gets
    EurekaServerConfig serverConfig = spy(new DefaultEurekaServerConfig());
    doReturn(true).when(serverConfig).disableTransparentFallbackToOtherRegion();
    testRegistry = new PeerAwareInstanceRegistryImpl(serverConfig, new DefaultEurekaClientConfig(), new DefaultServerCodecs(serverConfig), client);
    testRegistry.init(serverContext.getPeerEurekaNodes());
    testRegistry.syncUp();
}
Also used : DefaultEurekaClientConfig(com.netflix.discovery.DefaultEurekaClientConfig) DefaultEurekaServerConfig(com.netflix.eureka.DefaultEurekaServerConfig) DefaultEurekaServerConfig(com.netflix.eureka.DefaultEurekaServerConfig) EurekaServerConfig(com.netflix.eureka.EurekaServerConfig) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs) Before(org.junit.Before)

Example 2 with DefaultServerCodecs

use of com.netflix.eureka.resources.DefaultServerCodecs in project eureka by Netflix.

the class DiagnosticClient method main.

public static void main(String[] args) throws InterruptedException {
    String discoveryURL = args[0];
    long startTime = System.currentTimeMillis();
    EurekaServerConfig serverConfig = new DefaultEurekaServerConfig("eureka.");
    JerseyReplicationClient client = JerseyReplicationClient.createReplicationClient(serverConfig, new DefaultServerCodecs(serverConfig), discoveryURL);
    Applications applications = client.getApplications().getEntity();
    System.out.println("Applications count=" + applications.getRegisteredApplications().size());
    System.out.println("Instance count=" + countInstances(applications));
    while (true) {
        long delay = System.currentTimeMillis() - startTime;
        if (delay >= 30000) {
            System.out.println("Processing delay exceeds 30sec; we may be out of sync");
        } else {
            long waitTime = 30 * 1000 - delay;
            System.out.println("Waiting " + waitTime / 1000 + "sec before next fetch...");
            Thread.sleep(15 * 1000);
        }
        startTime = System.currentTimeMillis();
        Applications delta = client.getDelta().getEntity();
        Applications merged = EurekaEntityFunctions.mergeApplications(applications, delta);
        if (merged.getAppsHashCode().equals(delta.getAppsHashCode())) {
            System.out.println("Hash codes match: " + delta.getAppsHashCode() + "(delta count=" + countInstances(delta) + ')');
            applications = merged;
        } else {
            System.out.println("ERROR: hash codes do not match (" + delta.getAppsHashCode() + "(delta) != " + merged.getAppsHashCode() + " (merged) != " + applications.getAppsHashCode() + "(old apps)" + "(delta count=" + countInstances(delta) + ')');
            applications = client.getApplications().getEntity();
        }
    }
}
Also used : JerseyReplicationClient(com.netflix.eureka.transport.JerseyReplicationClient) Applications(com.netflix.discovery.shared.Applications) DefaultEurekaServerConfig(com.netflix.eureka.DefaultEurekaServerConfig) DefaultEurekaServerConfig(com.netflix.eureka.DefaultEurekaServerConfig) EurekaServerConfig(com.netflix.eureka.EurekaServerConfig) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs)

Example 3 with DefaultServerCodecs

use of com.netflix.eureka.resources.DefaultServerCodecs in project eureka by Netflix.

the class EurekaBootStrap method initEurekaServerContext.

/**
 * init hook for server context. Override for custom logic.
 */
protected void initEurekaServerContext() throws Exception {
    EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig();
    // For backward compatibility
    JsonXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH);
    XmlXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH);
    logger.info("Initializing the eureka client...");
    logger.info(eurekaServerConfig.getJsonCodecName());
    ServerCodecs serverCodecs = new DefaultServerCodecs(eurekaServerConfig);
    ApplicationInfoManager applicationInfoManager = null;
    if (eurekaClient == null) {
        EurekaInstanceConfig instanceConfig = isCloud(ConfigurationManager.getDeploymentContext()) ? new CloudInstanceConfig() : new MyDataCenterInstanceConfig();
        applicationInfoManager = new ApplicationInfoManager(instanceConfig, new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get());
        EurekaClientConfig eurekaClientConfig = new DefaultEurekaClientConfig();
        eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClientConfig);
    } else {
        applicationInfoManager = eurekaClient.getApplicationInfoManager();
    }
    PeerAwareInstanceRegistry registry;
    if (isAws(applicationInfoManager.getInfo())) {
        registry = new AwsInstanceRegistry(eurekaServerConfig, eurekaClient.getEurekaClientConfig(), serverCodecs, eurekaClient);
        awsBinder = new AwsBinderDelegate(eurekaServerConfig, eurekaClient.getEurekaClientConfig(), registry, applicationInfoManager);
        awsBinder.start();
    } else {
        registry = new PeerAwareInstanceRegistryImpl(eurekaServerConfig, eurekaClient.getEurekaClientConfig(), serverCodecs, eurekaClient);
    }
    PeerEurekaNodes peerEurekaNodes = getPeerEurekaNodes(registry, eurekaServerConfig, eurekaClient.getEurekaClientConfig(), serverCodecs, applicationInfoManager);
    serverContext = new DefaultEurekaServerContext(eurekaServerConfig, serverCodecs, registry, peerEurekaNodes, applicationInfoManager);
    EurekaServerContextHolder.initialize(serverContext);
    serverContext.initialize();
    logger.info("Initialized server context");
    // Copy registry from neighboring eureka node
    int registryCount = registry.syncUp();
    registry.openForTraffic(applicationInfoManager, registryCount);
    // Register all monitoring statistics.
    EurekaMonitors.registerAllStats();
}
Also used : DefaultEurekaClientConfig(com.netflix.discovery.DefaultEurekaClientConfig) PeerAwareInstanceRegistryImpl(com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl) CloudInstanceConfig(com.netflix.appinfo.CloudInstanceConfig) DefaultEurekaClientConfig(com.netflix.discovery.DefaultEurekaClientConfig) EurekaClientConfig(com.netflix.discovery.EurekaClientConfig) EurekaInstanceConfig(com.netflix.appinfo.EurekaInstanceConfig) EurekaConfigBasedInstanceInfoProvider(com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs) ServerCodecs(com.netflix.eureka.resources.ServerCodecs) PeerAwareInstanceRegistry(com.netflix.eureka.registry.PeerAwareInstanceRegistry) PeerEurekaNodes(com.netflix.eureka.cluster.PeerEurekaNodes) AwsBinderDelegate(com.netflix.eureka.aws.AwsBinderDelegate) MyDataCenterInstanceConfig(com.netflix.appinfo.MyDataCenterInstanceConfig) DiscoveryClient(com.netflix.discovery.DiscoveryClient) AwsInstanceRegistry(com.netflix.eureka.registry.AwsInstanceRegistry) ApplicationInfoManager(com.netflix.appinfo.ApplicationInfoManager)

Example 4 with DefaultServerCodecs

use of com.netflix.eureka.resources.DefaultServerCodecs in project eureka by Netflix.

the class AbstractTester method setUp.

@Before
public void setUp() throws Exception {
    ConfigurationManager.getConfigInstance().clearProperty("eureka.remoteRegion.global.appWhiteList");
    ConfigurationManager.getConfigInstance().setProperty("eureka.responseCacheAutoExpirationInSeconds", "10");
    ConfigurationManager.getConfigInstance().clearProperty("eureka.remoteRegion." + REMOTE_REGION_NAME + ".appWhiteList");
    ConfigurationManager.getConfigInstance().setProperty("eureka.deltaRetentionTimerIntervalInMs", "600000");
    ConfigurationManager.getConfigInstance().setProperty("eureka.remoteRegion.registryFetchIntervalInSeconds", "5");
    ConfigurationManager.getConfigInstance().setProperty("eureka.renewalThresholdUpdateIntervalMs", "5000");
    ConfigurationManager.getConfigInstance().setProperty("eureka.evictionIntervalTimerInMs", "10000");
    populateRemoteRegistryAtStartup();
    mockRemoteEurekaServer = newMockRemoteServer();
    mockRemoteEurekaServer.start();
    ConfigurationManager.getConfigInstance().setProperty("eureka.remoteRegionUrlsWithName", REMOTE_REGION_NAME + ";http://localhost:" + mockRemoteEurekaServer.getPort() + MockRemoteEurekaServer.EUREKA_API_BASE_PATH);
    serverConfig = spy(new DefaultEurekaServerConfig());
    InstanceInfo.Builder builder = InstanceInfo.Builder.newBuilder();
    builder.setIPAddr("10.10.101.00");
    builder.setHostName("Hosttt");
    builder.setAppName("EurekaTestApp-" + UUID.randomUUID());
    builder.setLeaseInfo(LeaseInfo.Builder.newBuilder().build());
    builder.setDataCenterInfo(getDataCenterInfo());
    ConfigurationManager.getConfigInstance().setProperty("eureka.serviceUrl.default", "http://localhost:" + mockRemoteEurekaServer.getPort() + MockRemoteEurekaServer.EUREKA_API_BASE_PATH);
    DefaultEurekaClientConfig clientConfig = new DefaultEurekaClientConfig();
    // setup config in advance, used in initialize converter
    ApplicationInfoManager applicationInfoManager = new ApplicationInfoManager(new MyDataCenterInstanceConfig(), builder.build());
    client = new DiscoveryClient(applicationInfoManager, clientConfig);
    ServerCodecs serverCodecs = new DefaultServerCodecs(serverConfig);
    registry = makePeerAwareInstanceRegistry(serverConfig, clientConfig, serverCodecs, client);
    serverContext = new DefaultEurekaServerContext(serverConfig, serverCodecs, registry, mock(PeerEurekaNodes.class), applicationInfoManager);
    serverContext.initialize();
    registry.openForTraffic(applicationInfoManager, 1);
}
Also used : DefaultEurekaClientConfig(com.netflix.discovery.DefaultEurekaClientConfig) MyDataCenterInstanceConfig(com.netflix.appinfo.MyDataCenterInstanceConfig) DiscoveryClient(com.netflix.discovery.DiscoveryClient) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs) InstanceInfo(com.netflix.appinfo.InstanceInfo) ApplicationInfoManager(com.netflix.appinfo.ApplicationInfoManager) DefaultServerCodecs(com.netflix.eureka.resources.DefaultServerCodecs) ServerCodecs(com.netflix.eureka.resources.ServerCodecs) Before(org.junit.Before)

Aggregations

DefaultServerCodecs (com.netflix.eureka.resources.DefaultServerCodecs)4 DefaultEurekaClientConfig (com.netflix.discovery.DefaultEurekaClientConfig)3 ApplicationInfoManager (com.netflix.appinfo.ApplicationInfoManager)2 MyDataCenterInstanceConfig (com.netflix.appinfo.MyDataCenterInstanceConfig)2 DiscoveryClient (com.netflix.discovery.DiscoveryClient)2 DefaultEurekaServerConfig (com.netflix.eureka.DefaultEurekaServerConfig)2 EurekaServerConfig (com.netflix.eureka.EurekaServerConfig)2 ServerCodecs (com.netflix.eureka.resources.ServerCodecs)2 Before (org.junit.Before)2 CloudInstanceConfig (com.netflix.appinfo.CloudInstanceConfig)1 EurekaInstanceConfig (com.netflix.appinfo.EurekaInstanceConfig)1 InstanceInfo (com.netflix.appinfo.InstanceInfo)1 EurekaConfigBasedInstanceInfoProvider (com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider)1 EurekaClientConfig (com.netflix.discovery.EurekaClientConfig)1 Applications (com.netflix.discovery.shared.Applications)1 AwsBinderDelegate (com.netflix.eureka.aws.AwsBinderDelegate)1 PeerEurekaNodes (com.netflix.eureka.cluster.PeerEurekaNodes)1 AwsInstanceRegistry (com.netflix.eureka.registry.AwsInstanceRegistry)1 PeerAwareInstanceRegistry (com.netflix.eureka.registry.PeerAwareInstanceRegistry)1 PeerAwareInstanceRegistryImpl (com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl)1