Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is service discovery in microservices?
Service discovery is a method that helps microservices find and communicate with each other automatically without hardcoding network locations.
Click to reveal answer
beginner
Why is service discovery important in microservices architecture?
Because microservices can change locations or scale dynamically, service discovery ensures they can always find each other to work properly.
Click to reveal answer
intermediate
Name two types of service discovery methods.
Client-side discovery, where the client finds services using a registry; and server-side discovery, where a load balancer or proxy finds services for the client.
Click to reveal answer
beginner
What role does a service registry play in service discovery?
A service registry keeps a list of all available service instances and their locations, helping services find each other dynamically.
Click to reveal answer
beginner
Give an example of a popular service discovery tool.
Examples include Consul, Eureka, and etcd, which help manage service registration and discovery in microservices.
Click to reveal answer
What does service discovery help microservices do?
AHandle user authentication
BStore user data securely
CFind and communicate with other services automatically
DManage database transactions
✗ Incorrect
Service discovery helps microservices locate and communicate with each other without manual configuration.
Which component holds the list of available service instances?
AService registry
BAPI gateway
CDatabase
DLoad balancer
✗ Incorrect
The service registry keeps track of all active service instances and their network locations.
In client-side discovery, who is responsible for locating services?
AThe database
BThe client itself
CThe server
DThe network router
✗ Incorrect
In client-side discovery, the client queries the service registry to find service instances.
Which of these is NOT a service discovery tool?
AConsul
Betcd
CEureka
DRedis
✗ Incorrect
Redis is a data store, not a service discovery tool.
Why can hardcoding service locations be a problem in microservices?
AServices may move or scale dynamically
BIt improves security
CIt reduces network traffic
DIt simplifies client code
✗ Incorrect
Hardcoding is problematic because services can change IPs or ports when scaling or restarting.
Explain how service discovery works in a microservices system and why it is needed.
Think about how services find each other when their addresses change.
You got /5 concepts.
Describe the difference between client-side and server-side service discovery.
Consider who is responsible for finding the service in each method.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of service discovery in a microservices architecture?
easy
A. To help services find and communicate with each other automatically
B. To store user data securely
C. To manage database transactions
D. To handle user authentication
Solution
Step 1: Understand the role of service discovery
Service discovery allows microservices to locate each other dynamically without hardcoding addresses.
Step 2: Identify the correct purpose
It is not about data storage, transactions, or authentication but about service communication.
Final Answer:
To help services find and communicate with each other automatically -> Option A
Quick Check:
Service discovery = automatic service location [OK]
Hint: Service discovery = finding services automatically [OK]
Common Mistakes:
Confusing service discovery with data storage
Thinking it manages user authentication
Assuming it handles database transactions
2. Which of the following is a common component used in service discovery for microservices?
easy
A. Load balancer
B. Service registry
C. API gateway
D. Database shard
Solution
Step 1: Identify components related to service discovery
A service registry keeps track of available service instances and their locations.
Step 2: Differentiate from other components
Load balancers distribute traffic, API gateways manage requests, and database shards split data, but none perform service discovery.
Final Answer:
Service registry -> Option B
Quick Check:
Service registry = key for service discovery [OK]
Hint: Service registry stores service locations [OK]
Common Mistakes:
Confusing load balancer with service registry
Mixing API gateway with service discovery
Thinking database shards help find services
3. Consider this simplified service discovery flow:
1. Service A queries the registry for Service B's address.
2. Registry returns Service B's current IP and port.
3. Service A connects to Service B using the returned address.
4. Service B processes the request and responds.
What happens if Service B changes its IP but the registry is not updated?
medium
A. Service B will notify Service A directly
B. Service A will automatically find the new IP
C. The registry will redirect Service A to the new IP
D. Service A will connect to the old IP and fail
Solution
Step 1: Analyze the flow when registry is outdated
If the registry has an old IP, Service A uses that wrong address to connect.
Step 2: Understand consequences of stale registry data
Service A cannot find Service B at the old IP, so connection fails; no automatic update or redirection occurs.
Final Answer:
Service A will connect to the old IP and fail -> Option D
4. A developer notices that service discovery is failing because services cannot find each other. The registry is running, but services do not register themselves. What is the most likely cause?
medium
A. The registry database is full
B. Network latency is too high
C. Services are not sending heartbeat or registration requests to the registry
D. Services are using incorrect API versions
Solution
Step 1: Identify why services are missing in registry
Services must actively register or send heartbeats to the registry to be discoverable.
Step 2: Eliminate other causes
Full database or network latency might cause delays but not complete absence; API version mismatch affects communication, not registration.
Final Answer:
Services are not sending heartbeat or registration requests to the registry -> Option C
Quick Check:
Missing registration = discovery failure [OK]
Hint: Services must register to be discoverable [OK]
Common Mistakes:
Blaming network latency for missing registrations
Assuming registry storage limits cause missing services
Confusing API version issues with registration problems
5. In a large microservices system with many instances starting and stopping frequently, which service discovery approach best supports scalability and fault tolerance?
hard
A. Using a centralized service registry with periodic health checks and automatic deregistration
B. Hardcoding service IPs in each microservice configuration
C. Using DNS-based service discovery without health checks
D. Relying on client-side caching of service addresses without updates
Solution
Step 1: Evaluate scalability and fault tolerance needs
Frequent changes require dynamic updates and health checks to avoid stale info and failures.
Step 2: Compare approaches
Centralized registry with health checks keeps accurate service info; hardcoding or caching causes stale data; DNS without health checks misses failures.
Final Answer:
Using a centralized service registry with periodic health checks and automatic deregistration -> Option A
Quick Check:
Dynamic registry + health checks = scalable, fault tolerant [OK]
Hint: Dynamic registry with health checks scales best [OK]