satlearner
satlearner

Reputation: 345

Clustering Eureka Servers in Google Cloud

We are using Spring Cloud Netflix Eureka for Service Registration. We will be deploying all microservices in GCP (Google Cloud).

Environment

eureka.client.service-url.default-zone=http://xx.xx.xx.xxx:8762/eureka

eureka.client.service-url.default-zone=http://xx.xx.xx.xxx:8761:/eureka,http://xx.xx.xx.xxx:8762:/eureka

Since IP Address and hostnames are dynamic in cloud, can we configure Eureka Servers in cluster without using ipaddress/hostname.

Please provide a sample confiugration to use in Google Cloud.

Upvotes: 1

Views: 1897

Answers (2)

gavenkoa
gavenkoa

Reputation: 48713

gcloud maintains internal DNS resolver for subnets (if you are using default OS images).

So you can use host names to resolve IP addresses. Like prod-redis-2.c.project-<id>.internal.

You may probably need to configure links between subnets to avoid making IP addresses public.

Upvotes: 2

narendra-choudhary
narendra-choudhary

Reputation: 4818

I have not used GCP but have implemented and deployed spring cloud on PCF (which, on a higher level, is pretty much same as GCP).

You cannot make defaultZone completely dynamic. Why? Because these propeties are picked up during the application startup.

There needs to be something (some service or database) in your architecture that tells your services the dynamic hostnames/IP-addresses of other services. That is Eureka server in your case. All services needs to know the address (hostname/IP-address) of Eureka service. Now if Eureka server's hostname is dynamic, then how will your services know about the new hostname of Eureka server when that hostname changes?

You'll have to update the address of Eureka server manually only. What, at max, you can do is externalize defaultZone to a centralized configuration server (or something similar). That way you'll have to update the new address at one place only.

Upvotes: 0

Related Questions