tinybalancer

Go Report Card GitHub top language GitHub stars GitHub forks GitHub codecov  go_version

tinybalancer is a reverse proxy load balancer that supports http and https. It currently supports five algorithms, namely round-robin, random, the power of 2 random choice, consistent hash and consistent hash with bounded.

Install

First download the source code of balancer:

> git clone https://github.com/zehuamama/tinybalancer.git

compile the source code:

> cd ./tinybalancer

> go build

Run

Balancer needs to configure the config.yaml file, the content is as follows:

# Copyright 2022 <[email protected]>. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.


# The load balancing algorithms supported by the balancer are:
# `round-robin` ,`random` ,`p2c`,`consistent-hash`,`bounded`,
# Among these,`p2c` refers to the power of 2 random choice,
# and `bounded` refers to consistent hash with bounded

schema: http                      # support http and https
port: 8089                        # port for balancer
ssl_certificate:
ssl_certificate_key:
location:                         # route matching for reverse proxy
  - pattern: /
    proxy_pass:                   # URL of the reverse proxy
    - "http://127.0.0.1:1012"
    - "http://127.0.0.1:1013"
    balance_mode: round-robin     # load balancing algorithm

and now, you can execute tinybalancer, the balancer will print the ascii diagram and configuration details:

> ./tinybalancer

___ _ _  _ _   _ ___  ____ _    ____ _  _ ____ ____ ____ 
 |  | |\ |  \_/  |__] |__| |    |__| |\ | |    |___ |__/ 
 |  | | \|   |   |__] |  | |___ |  | | \| |___ |___ |  \                                        

Schema: http
Port: 8089
Location:
	Route: /
	ProxyPass: [http://127.0.0.1:1012 http://127.0.0.1:1013]
	Mode: round-robin

GitHub

View Github