スロットリング
一定時間内に受信可能なリクエスト数を制限する仕組み
制限を超えたらエラーを返して一定時間経過の後に再び受信可能になる
apiとかのコールリミットみたいなのを実現するためにはスロットリングが実装されてないといけないね
クライアント側では
Exponential backoffの間隔でリトライさせるようにするとかがベストプラクティスな気がするね
実装
Play Guard
https://github.com/sief/play-guard
hiroki.iconplayframeworkでスロットリング実装できそう
kong
https://konghq.com/kong/
OSS版のapi gateway
ここの手順でhelmするだけでかk8sへ簡単に展開できる
AWS API Gateway
スロットリングを調節できる
https://gyazo.com/02458388f0272ed4d4708540e63fe32a
クライアントごとに使用料プランみたいなapi keyを実現できる
hiroki.iconAWSのapi gatewayは一番柔軟にやりたいことやれる印象だね
GCP API Gateway
こっちはスロットリング出来なさそう