erlbal
erlbal is an erlang load balancer.
Balancer calls:
- start_bal/0 spawns a balancer.
- stop_bal/1 takes a balancer kills the balancer.
- list_servers/1 takes a balancer and returns a list of the servers it balances over.
Server calls:
- start_server/2 takes a balancer, a node and a function and spawns a server on the node to serve the function.
- stop_server/2 takes a balancer and a server PID and stops the server and removes it from the balancer.
Request calls:
- make_request/1 takes a balancer and returns the response from the server.
- make_request/2 takes a balancer and an argument and returns the response from the server.
The function:
The function must take two lists, some arguments and some state.
It must return a tuple of {Return value, new state}.
Info
The balancer round robins requests between erlang processes.
When it receives a request, it forwards it on to the next server in the round robin.
The server then runs the function with the argument passed to it and returns a response to the balancer.
The balancer forwards the response back to the requestor.
The function arg could be anything, so you can pass multiple args in a tuple or list, etc.