간단한 로드밸런서와 HTTP 프록시 서버 구현

레이트 리미터 Limiter interface package limiter type Limiter interface { TryTake([]byte) (bool, int) } 레이트 리미터 객체가 구현해야할 인터페이스로 Limiter 인터페이스가 있습니다. 바이트 슬라이스를 받아서 해당 슬라이스를 기반으로 레이트 리밋을 계산하여 이번 요청이 사용 가능하면 true와 적절한 status code를 반환합니다. slide count struct type SlideCount struct { lock *lock.Lock unit int64 maxConnPer float64 prevTime int64 prevCount int64 curCount int64 nextTime int64 } func New(maxConnPer float64, unit time.Duration) limiter.Limiter { now := int64(time....

March 11, 2022 · snowmerak