I'm learning spring cloud Netflix by reading this article, however I started to get confused by different terminology in this article, they are:
Eureka service. To my understand it's an ordinary service (specifically a Microservice) that running on a unique uri (i.e.one service per uri). Say localhost:12000
. It is can be registered in the Eureka server.
Eureka Client. Same thing as Eureka service???
Eureka Server. To my understand, it's the server that we can inspect, discover and manage bunch of Microservices we built, normally running on localhost:8761
Eureka Instance. I'm confused by what's it referred to, same thing as the Eureka client?
Also in this article, it mentions eureka.client
in config and EurekaClient
in Netflix API, are they referring to the same thing?
Please tell me what do these four terms mean and correct me if I'm wrong. Thank you!
==================================UPDATE==================================
In the article it said:
@EnableEurekaClient
makes the app into both a Eureka "instance" (i.e. it registers itself) and a "client" (i.e. it can query the registry to locate other services).
So it looks like the Eureka instance is same as Eureka service. While Eureka Client is a special instance that can query for other instances/services.
Eureka Server is an application that holds the information about all client-service applications. Every Micro service will register into the Eureka server and Eureka server knows all the client applications running on each port and IP address. Eureka Server is also known as Discovery Server.
Eureka is a REST based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
With Netflix Eureka, each client can simultaneously act as a server to replicate its status to a connected peer. In other words, a client retrieves a list of all connected peers in a service registry, and makes all further requests to other services through a load-balancing algorithm.
defaultZone property. The Eureka server works in two modes: Standalone: in local, we configure a stand-alone mode where we have only one Eureka server (localhost) and the same cloning property from itself. Clustered: we have multiple Eureka servers, each cloning its states from its peer.
Eureka Server
The discovery server. It contains a registry of services and a REST api that can be used to register a service, deregister a service, and discover the location of other services.
Eureka Service
Any application that can be found in the Eureka Server's registry and is discoverable by others. A service has a logical identifier sometimes called a VIP, sometimes called a "service id", that can refer to one or more instances of the same application.
Eureka Instance
Any application that registers itself with the Eureka Server to be discovered by others
Eureka Client
Any application that can discover services
How can an application be both a Eureka Instance and a Eureka Client?
Applications often need to make themselves available for use by others (so they are an instance) while at the same time they need to discover other services (so they are a client).
Does a Eureka Client have to be a Eureka Instance?
No. Sometimes an application has nothing to offer and is only a caller of other services. Via configuration (eureka.client.register-with-eureka=false
), you can tell it not to register itself as an instance. It is therefore only a Eureka Client as it only discovers other services.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With