>백엔드 개발 >Golang >API 속도 제한 서버

API 속도 제한 서버

Patricia Arquette
Patricia Arquette원래의
2024-11-06 05:54:02335검색

API Rate Limiting Server

이 프로젝트는 속도 제한이 있는 HTTP 서버를 구현합니다. 초당 5개 이하의 요청을 처리할 수 있습니다.

목차

  • 소개
  • 특징
  • Github 링크
  • 설치
  • 엔드포인트
  • 사용방법
  • 테스트
  • 라이센스

소개

API 속도 제한 서버는 남용을 방지하고 서버 부하를 효과적으로 관리하기 위해 초당 요청 수를 제한합니다. 서버 상태를 모니터링하기 위한 자세한 로깅 및 상태 확인 엔드포인트를 제공합니다.

특징

  • 초당 5개 요청으로 속도 제한
  • 서버 상태를 모니터링하기 위한 상태 점검 엔드포인트
  • 상세 요청 로깅

Github 링크

https://github.com/surajupadhaya/Simple-API-RateLimit

설치

1. Clone the repository:

   #git clone https://github.com/surajupadhaya/Simple-API-RateLimit
   #cd Simple-API-RateLimit


2. Install dependencies:
   #go mod tidy

엔드포인트

1. /: Default route returns a "stupid request" message with status 400.

2. /healthcheck: Endpoint to check the health status of the server. Returns "Health Passed" if the /healthcheck file exists, otherwise "Health Failed".

3. /api/v1/product: Example endpoint for the product API. Returns "This is a Product API" if the /api/v1/product file exists, otherwise "There is no Product API".

용법

1. Run the API rate limiting server:
   #go run main.go
2. Access the server:
   #curl -w %{http_code}http://localhost:8080 

시험

1. Run Httperf tool to test the rate limiting 
Below httperf command is sending 6 connection parallelly in one sec 
Out of 6 only 1 will receive 503 code (due to throttling) remaining will receive based on behavior 
#httperf --server localhost --port 8080 --uri /healthcheck --num-conns 6

Sample output :

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/842aqi7lmzqw7sa1mcs1.png)



특허

This project is licensed under the MIT License. See the LICENSE file for details.

This `README.md` should cover the current state of your project, focusing on the API rate limiting aspect. Ready to roll? ?


This should cover everything your project entails. You can add, modify, or remove sections as needed. ?

위 내용은 API 속도 제한 서버의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.