I'm trying to create a load balancer that routes based on CPU availability on server. Do you guys know the best algorithm for such a case?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • serviceq

    Super fault-tolerant HTTP load balancer & queue. White paper for reference - https://github.com/gptankit/serviceq-paper

  • When you have so many metrics to consider, ideal choice is to assign weights to each metric and let the load balancer distribute load probabilistically (think weighted random). Implemented a load balancer in Go on similar lines (https://github.com/gptankit/serviceq) by calculating 'effective error' as weight from each node and inversely distributing load to the cluster. This ensures that a) one single node doesn't get overwhelmed with all the requests and b) even if some node is down, it keeps receiving a small percentage of requests (albeit lesser and lesser as time progresses).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts