GSLoC is a open source Global Server Load Balancing (GSLB) solution.
It implements GSLB solution using consul.
Server answer to DNS Request with A, AAAA and ANY type. It implements multiple algorithms to choose the best answer:
- Round Robin
- Weighted Round Robin (Ratio)
- Topology (GeoIP with maxmind)
- DNS style (Random)
GSLoC handle dns request and managing consul services (and store its data on kv store from consul).
Consul is used for failover, healthcheck adn gossip protocol between consul servers.
- gsloc: GSLoC server implementation.
- gsloc-cli: GSLoC cli for interacting with server.
- gsloc-api: Api definition in protobuf and grpc with code generation tools and architectural docs and doc api.
- gsloc-go-sdk: Go sdk for gsloc api used in gsloc implementation.
We use the pre-commit
tool to automatically enforce coding standards and run various checks on code changes. To get
started, follow these steps:
- Install
pre-commit
globally on your local machine. You can do this by running the following command in your terminal (prefer using pip3):
pip install pre-commit
- After installing
pre-commit
, navigate to the root directory of the project and run the following command to install the pre-commit hooks:
pre-commit install
- Now, every time you make a commit,
pre-commit
will automatically run the configured checks on your changes and prevent the commit if any issues are found.