ETExamTower
Q29Infrastructure and Automation

Where should distributed load balancing take place in a horizontally scalable architecture?

← → navigate · a answer
Community votes
D
100% (5)
A
0% (0)
B
0% (0)
C
0% (0)
Discussion · 13
7
I’m choosing D
4
I'll go with D too Explanation: The term horizontally scalable refers to systems whose capacity and throughput grow by adding additional nodes. This is unlike vertically scaled systems, where adding capacity and throughput generally means replacing smaller nodes with larger and more powerful ones. Still, horizontal scalability brings a new problem: if you have 10 service doing the same job, which one do you connect to, or to put it simply, how do you distribute the traffic? The solution to this is, of course, distributing incoming traffic to the pool of resources or servers by load balancing. In distributed load balancing, there are no central load balancers, each client that needs some service uses that service through a locally installed reverse-proxy. Reverse-proxy is always up-to-date with existing services, meaning when a new service is being provisioned, reverse-proxy is configured and updated. Reverse-proxy takes care of the load-balancing, so it is client-side load-balancing. Each time a client makes a request, based on the load-balancing strategy, reverse-proxy distributes the request to the attached resources.
3
I go with 'D. client-side/local load balancing' https://enginyoyen.com/distributed-load-balancing/ section 'Distributed Load Balancing'
3
Well, with horizontal scaling, you can have multiple solutions: - A client-side load balancer as you wrote above. - A service-side load balancer as kubernetes metallb - A firewall-side or network-side load balancer as F5 for example.
3
All the provided types are examples of horizontal scale of the system. But the question asks specifically about "distributed" load balancing. So D is the right call here.
D 3
Selected Answer: D D is correct. > The front-end/back-end model/concept is widely used in web development. The front end (also called the “client side”) is everything a user sees and interacts with in a browser. The back end (also called the “server side”) of a website processes and stores data and makes sure everything on the client side works properly. To further lower latency, modern web architectures use client-side processes and move away from doing everything on a server side. With this model, the server provides a “raw” code that implements some application logic and renders a web page into its final form locally within a browser. It allows the creation of dynamic web pages, where the view changes based on user input and events (for example, hovering a mouse over a thumbnail brings up a full-sized image) without any interaction with a server, resulting in a much better user experience. > The load balance could be done by using local ADC (Application Delivery Controllers) or geographically by using GSLB (Global Server Load Balancer) with DNS queries or CDN caches.
D 2
Selected Answer: D The correct answer is: D. client-side/local load balancing Explanation: In a horizontally scalable architecture, distributed load balancing should ideally happen on the client side. This is because it allows traffic to be routed directly to different servers, thereby ensuring a more even distribution of load
1
Isn't C the right answer?
1
Sorry, let me withdraw my comment
1
I think these questions need a lot more intel. Are the systems virtualized, are they using overlay technologies, all of that affects design decisions. But from the infromation they give here, if it's baremetal systems I would say either B or D. Where D is the more likely one, as indeed stated distributed loadbalancing is easiest achieved with applications like ngnix. though F5 can do this with GTM and LTM solutions where a GTM distributes loads across regions and dc's and the LTM over multiple end compute nodes. This is hard to achieve with Ngnix nodes.
1
Distributed Load Balancing In distributed load balancing, there are no central load balancers, each client that needs some service uses that service through a locally installed reverse-proxy. Reverse-proxy takes care of the load-balancing, so it is client-side load-balancing. Each time a client sends a request, based on the load-balancing strategy, reverse-proxy distributes the request to the attached resources.
D 1
Selected Answer: D client-side feels more distributed than the other choices, since each client can make the decision. feels like more of a 'dictionary' test with questions like this.
D 1
Selected Answer: D Correct Answer: D. client-side/local load balancing Reason: In a horizontally scalable architecture, distributed load balancing works best when it is handled on the client side (local load balancing): Each client or service instance can independently pick from multiple service endpoints. Avoids creating a central bottleneck or single point of failure. Improves scalability and resilience. Common in microservices using service discovery tools like Consul, Netflix Eureka, or Kubernetes service discovery.