Golang - Rate Limit

์ด ๊ธ€์—์„œ๋Š” ์ด ๊ธ€์—์„œ๋Š” golang์„ ํ™œ์šฉํ•œ rate limit์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ํšŒ์‚ฌ ์—…๋ฌด์—์„œ tcp 100์œผ๋กœ ๊ณ ์ •ํ•˜๊ณ  ์œ ์ € ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•˜๋Š” batch job์„ ๊ฐœ๋ฐœํ–ˆ์—ˆ๋Š”๋ฐ, golang์—์„œ ์ œ๊ณตํ•˜๋Š” rate limit ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ด€๋ จํ•ด์„œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”! ์ด ๊ธ€์„ ์ฝ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ง€์‹์„ ์–ป์–ด๊ฐ€๊ธธ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค ์ฒ˜๋ฆฌ์œจ ์ œํ•œ(rate limit)์ด๋ž€? golang rate package ์ฃผ์˜* ์ œ๊ฐ€ ๊ฒฝํ—˜ํ•œ ์ผ€์ด์Šค๋Š” ๋‹จ์ผ batch job์„ kubernetes cronjob์œผ๋กœ ๋™์ž‘์‹œํ‚จ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ์˜ rate limiter๋Š” ๋˜ ๋‹ค๋ฅธ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋Š” ๊ธ€ ํ›„๋ฐ˜๋ถ€์— ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ์œจ ์ œํ•œ(rate limit)..

Go 2023. 9. 16. 18:01
์š”์ฆ˜ ๋– ์˜ค๋ฅด๋Š” gRPC ํ†บ์•„๋ณด๊ธฐ

gRPC๋Š” ์™œ ์‹ค์šฉ์ ์ผ๊นŒ? ์ด ๊ธ€์€ gRPC๋ฅผ ์ ‘ํ•œ ์ง€ ์–ผ๋งˆ ์•ˆ ๋๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ์•Œ์•„๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์„ ๋Œ€์ƒ์œผ๋กœ go, gRPC ๊ทธ๋ฆฌ๊ณ  MSA ํ™˜๊ฒฝ์—์„œ์˜ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” gRPC๋Š” ์ธํ”„๋ผ ๊ตฌ์ถ•์— ์žˆ์–ด ๋‹ค์†Œ ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ์žˆ๋Š” ํŽธ์ด์ง€๋งŒ ๊ต‰์žฅํžˆ ์‹ค์šฉ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”. ๋จผ์ €, gRPC๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? gRPC๋Š” ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. gRPC๋Š” Protocol Buffer๋ฅผ IDL(Interface Definition Language)๋กœ ์‚ฌ์šฉํ•˜๋Š” HTTP/2๊ธฐ๋ฐ˜์˜ RPC ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ƒ์†Œํ•œ ๋‹จ์–ด๋“ค์ด ๋งŽ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ์š”! ์ž ๊น ๋ช‡ ๊ฐ€์ง€ ์‚ดํŽด๋ณผ๊นŒ์š”? RPC(Remote Procedure Call) RPC๋Š” ๋ง ๊ทธ๋Œ€..

BackEnd 2022. 12. 4. 18:39