관리 메뉴

λͺ©λ‘2022/06 (7)

kingsubin

μ•ˆμ • ν•΄μ‹œ 섀계

μ•ˆμ • ν•΄μ‹œ 섀계 μˆ˜ν‰μ  규λͺ¨ ν™•μž₯성을 λ‹¬μ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” μš”μ²­ λ˜λŠ” 데이터λ₯Ό μ„œλ²„μ— κ· λ“±ν•˜κ²Œ λ‚˜λˆ„λŠ” 것이 μ€‘μš”ν•˜λ‹€. μ•ˆμ • ν•΄μ‹œλŠ” 이 λͺ©ν‘œλ₯Ό λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ 보편적으둜 μ‚¬μš©ν•˜λŠ” κΈ°μˆ μ΄λ‹€. ν•΄μ‹œ ν‚€ 재배치(rehash) 문제 N개의 μΊμ‹œ μ„œλ²„κ°€ μžˆλ‹€κ³  ν•  λ•Œ, 이 μ„œλ²„λ“€μ— λΆ€ν•˜λ₯Ό κ· λ“±ν•˜κ²Œ λ‚˜λˆ„λŠ” 보편적 방법은 serverIndex = hash(key) % N이닀. 이 방법은 server pool의 크기가 κ³ μ •λ˜μ–΄ μžˆμ„ λ•Œ, 데이터 뢄포가 κ· λ“±ν•  λ•ŒλŠ” 잘 λ™μž‘ν•œλ‹€. ν•˜μ§€λ§Œ μ„œλ²„κ°€ μΆ”κ°€λ˜κ±°λ‚˜ κΈ°μ‘΄ μ„œλ²„κ°€ μ‚­μ œλ˜λ©΄ λ¬Έμ œκ°€ 생긴닀. server pool의 크기가 λ³€ν•˜λ©΄ 킀에 λŒ€ν•œ ν•΄μ‹œ 값은 λ³€ν•˜μ§€ μ•Šμ§€λ§Œ λ‚˜λ¨Έμ§€ 연산을 μ μš©ν•œ μ„œλ²„ 인덱슀 값은 λ³€ν•  것이닀. κ·Έ κ²°κ³Ό λŒ€λΆ€λΆ„μ˜ ν‚€κ°€ 재 λΆ„λ°°λ˜λ©°, λŒ€κ·œλͺ¨ cache mis..

μ±…/misc 2022. 6. 21. 01:09
처리율 μ œν•œ μž₯치의 섀계

처리율 μ œν•œ μž₯치의 섀계 λ„€νŠΈμ›Œν¬ μ‹œμŠ€ν…œμ—μ„œ 처리율 μ œν•œ μž₯치(rate limiter)λŠ” ν΄λΌμ΄μ–ΈνŠΈ λ˜λŠ” μ„œλΉ„μŠ€κ°€ λ³΄λ‚΄λŠ” νŠΈλž˜ν”½μ˜ 처리율(rate)을 μ œμ–΄ν•˜κΈ° μœ„ν•œ μž₯μΉ˜λ‹€. HTTPλ₯Ό μ˜ˆμ‹œλ‘œ λ“€μžλ©΄ νŠΉμ • κΈ°κ°„ 내에 μ „μ†‘λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­ 횟수λ₯Ό μ œν•œν•œλ‹€. API μš”μ²­ νšŸμˆ˜κ°€ μ œν•œ μž₯μΉ˜μ— μ •μ˜λœ μž„κ³„μΉ˜(threshold)λ₯Ό λ„˜μ–΄μ„œλ©΄ μΆ”κ°€λ‘œ λ„λ‹¬ν•œ λͺ¨λ“  ν˜ΈμΆœμ„ μ²˜λ¦¬κ°€ block λœλ‹€. μ˜ˆμ‹œ: μ‚¬μš©μžλŠ” μ΄ˆλ‹Ή 2회 이상 μƒˆ 글을 올릴 수 μ—†λ‹€. 같은 IP μ£Όμ†Œλ‘œλŠ” ν•˜λ£¨μ— 10개 μ΄μƒμ˜ 계정 생성할 수 μ—†λ‹€. 같은 λ””λ°”μ΄μŠ€λ‘œ μ£Όλ‹Ή 5회 이상 λ¦¬μ›Œλ“œ(reward) μš”μ²­ν•  수 μ—†λ‹€. API 처리율 μ œν•œ μž₯치λ₯Ό 두면 쒋은 점 DoS(Denial of Service) 곡격에 μ˜ν•œ μžμ› 고갈(resource starv..

μ±…/misc 2022. 6. 19. 21:37