Problem
When
microservices come into the picture, we need to address a few issues in terms
of calling services:
- With
container technology, IP addresses are dynamically allocated to the
service instances. Every time the address changes, a consumer service can
break and need manual changes.
- Each
service URL has to be remembered by the consumer and become tightly
coupled.
So how
does the consumer or router know all the available service instances and
locations?
Solution
A service
registry needs to be created which will keep the metadata of each producer
service. A service instance should register to the registry when starting and
should de-register when shutting down. The consumer or router should query
the registry and find out the location of the service. The registry also
needs to do a health check of the producer service to ensure that only
working instances of the services are available to be consumed through it.
There are two types of service discovery: client-side and server-side. An
example of client-side discovery is Netflix Eureka and an example
of server-side discovery is AWS ALB.
No comments:
Post a Comment