category

Design

10개의 글

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

레이트 리미터

레이트 리미터 Limiter interface package limiter type Limiter interface { TryTake([]byte) (bool, int) } 레이트 리미터 객체가 구현해야할 인터페이스로 Limiter 인터페이스가 있습니다. 바이트 슬라이스를 받아서 해당 슬라이스를 기반으로 레이트 리밋을 계산하여 이번 요청이 사용 가능하면 true와 적절한 status code를 반환합니다. slide count …

logstream

개요

이 글은 제 로그 라이브러리를 작성하며 생각한 것을 작성한 것입니다. 개요 logstream 라이브러리는 로그를 생성하고 소비하는 패턴을 구현하기 위해 만든 일종의 고 프로그램 전역에서 돌아가는 메시지 큐입니다. 다른 메시지 큐와 마찬가지로 여러 생산자가 토픽에 값을 추가하고 소비자가 토픽에서 값을 꺼내서 사용합니다. 생산자(producer)는 코드 상 어디라도 될 수 있으며 스트림을 내포하고 있는 객체는 글로벌큐(global …