Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bitly/go-hostpool
Intelligently and flexibly pool among multiple hosts from your Go application
https://github.com/bitly/go-hostpool
hostpool loadbalancing
Last synced: about 1 month ago
JSON representation
Intelligently and flexibly pool among multiple hosts from your Go application
- Host: GitHub
- URL: https://github.com/bitly/go-hostpool
- Owner: bitly
- License: mit
- Created: 2012-11-14T19:17:47.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2020-12-16T15:39:34.000Z (about 4 years ago)
- Last Synced: 2024-06-18T12:37:31.458Z (7 months ago)
- Topics: hostpool, loadbalancing
- Language: Go
- Size: 40 KB
- Stars: 376
- Watchers: 30
- Forks: 53
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
go-hostpool
===========[![Build Status](https://secure.travis-ci.org/bitly/go-hostpool.png?branch=master)](http://travis-ci.org/bitly/go-hostpool) [![GoDoc](https://godoc.org/github.com/bitly/go-hostpool?status.svg)](https://godoc.org/github.com/bitly/go-hostpool) [![GitHub release](https://img.shields.io/github/release/bitly/go-hostpool.svg)](https://github.com/bitly/go-hostpool/releases/latest)
A Go package to intelligently and flexibly pool among multiple hosts from your Go application.
Host selection can operate in round robin or epsilon greedy mode, and unresponsive hosts are
avoided.
Usage example:```go
hp := hostpool.NewEpsilonGreedy([]string{"a", "b"}, 0, &hostpool.LinearEpsilonValueCalculator{})
hostResponse := hp.Get()
hostname := hostResponse.Host()
err := _ // (make a request with hostname)
hostResponse.Mark(err)
```View more detailed documentation on [godoc.org](http://godoc.org/github.com/bitly/go-hostpool)