28 lines
422 B
Go
28 lines
422 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
|
|
"golang.org/x/time/rate"
|
|
)
|
|
|
|
const Addr = ":4000"
|
|
|
|
func okHandler(w http.ResponseWriter, r *http.Request) {
|
|
w.Write([]byte("ok"))
|
|
}
|
|
|
|
func main() {
|
|
const (
|
|
TokenBurst = 1
|
|
RPSLimit = 3
|
|
)
|
|
l := rate.NewLimiter(RPSLimit, TokenBurst)
|
|
|
|
mux := http.NewServeMux()
|
|
mux.HandleFunc("/", okHandler)
|
|
|
|
log.Println("Listening on ", Addr)
|
|
http.ListenAndServe(Addr, limit(l, mux))
|
|
}
|