DEPRECATED: this repo has been merged into https://github.com/cloudfoundry/pxc-release
A TCP router written on Golang.
Developed to replace HAProxy as the proxy tier enabling high availability for the MySQL dbaas for Cloud Foundry. Responsible for routing of client connections to a one node at a time of a backend cluster, and failover on cluster node failure. For more information, see the develop branch of cf-mysql-release/docs/proxy.md.
There are several other proxies out there: Nginx, HAProxy and even MariaDB's MaxScale. None of them met a specific criteria which is critical for the performance of the cluster in the case that a database server becomes unhealthy but is still accessible. Switchboard detects this condition (via healthchecks) and severs the connection. This forces the client to reconnect, and will be routed to a healthy backend. From the client's perspective it looks like it is connected to a single backend that briefly disappeared and is immediately available again.
Install Go by following the directions found here
Running the tests requires Ginkgo:
go get github.com/onsi/ginkgo/ginkgo
Run the tests using the following command:
./bin/test
Ensure phantomjs v2.0 or greater is installed.
To do this on OSX using homebrew:
brew install phantomjs
Run the UI tests using the following command:
./bin/test-ui
Build UI assets:
./bin/build-ui