Οδηγοί

Τι είναι το rate limiting; Οδηγός με απλά λόγια για δημιουργούς εφαρμογών

Το rate limiting είναι ένας κανόνας που περιορίζει πόσα αιτήματα μπορεί να κάνει κάποιος σε ένα σύστημα μέσα σε δεδομένο χρονικό διάστημα — για παράδειγμα, 5 προσπάθειες σύνδεσης ανά λεπτό ή 100 κλήσεις API ανά ώρα. Μόλις συμπληρωθεί το όριο, τα επόμενα αιτήματα απορρίπτονται (συνήθως με τον κωδικό σφάλματος 429 Too Many Requests) μέχρι να επαναφερθεί το χρονικό παράθυρο. Προστατεύει τις εφαρμογές από κατάχρηση, εμποδίζει έναν βαρύ χρήστη να επιβραδύνει τα πράγματα για όλους και σταματά το ανεξέλεγκτο κόστος.

Το rate limiting το συναντάς από δύο πλευρές: οι υπηρεσίες που καλείς σε περιορίζουν εσένα, και η δική σου εφαρμογή θα πρέπει να περιορίζει τους χρήστες της.

Γιατί έχει σημασία το rate limiting όταν χτίζεις με AI

Οι εφαρμογές που χτίζονται με AI συχνά συνδέονται με πληρωμένες υπηρεσίες — μοντέλα AI, email, SMS, χάρτες — και κάθε κλήση κοστίζει. Αυτό κάνει το rate limiting και λειτουργία ασφάλειας και λειτουργία προϋπολογισμού.

  • Έλεγχος κόστους. Αν η εφαρμογή σου έχει πεδίο «ρώτα AI» χωρίς όριο, ένα bot μπορεί να της στέλνει χιλιάδες αιτήματα μέσα σε μία νύχτα. Πληρώνεις για καθένα.
  • Ασφάλεια. Χωρίς όριο στη φόρμα σύνδεσης, ένας επιτιθέμενος μπορεί να δοκιμάσει χιλιάδες κωδικούς σε έναν λογαριασμό. Ένα όριο μερικών προσπαθειών ανά λεπτό το κάνει μη ρεαλιστικό.
  • Διατήρηση σε λειτουργία. Ένα κακοσυμπεριφερόμενο script — μερικές φορές ο δικός σου κώδικας που κολλάει σε βρόχο — μπορεί να υπερφορτώσει τη βάση δεδομένων σου και να ρίξει την εφαρμογή.
  • Σεβασμός των ορίων άλλων υπηρεσιών. Όταν η εφαρμογή σου καλεί εξωτερικό API πολύ συχνά, εσύ παίρνεις τα σφάλματα 429, και οι λειτουργίες σπάνε για τους χρήστες σου.

Οι AI builders χτίζουν ό,τι ζητάς. Αν δεν αναφέρεις όρια, συχνά παραλείπονται.

Μια καθημερινή αναλογία

Σκέψου την πολιτική δωρεάν επαναπλήρωσης ενός καφέ: «Μία δωρεάν επαναπλήρωση ανά πελάτη ανά επίσκεψη.»

  • Δεν εμποδίζει κανέναν να απολαύσει τον καφέ του.
  • Εμποδίζει έναν άνθρωπο να στέκεται στον πάγκο όλη μέρα και να γεμίζει θερμός για όλο το γραφείο.
  • Όταν κάποιος ζητήσει τέταρτη επαναπλήρωση, ο μπαρίστας λέει ευγενικά «όχι τώρα» — αυτό είναι το 429.

Ένα καλό όριο είναι αόρατο για τους συνηθισμένους πελάτες και το προσέχει μόνο όποιος κάνει κάτι ασυνήθιστο.

Πώς λειτουργεί το rate limiting

Ένας rate limiter χρειάζεται τρία πράγματα:

ΜέροςΕρώτηση που απαντάΠαραδείγματα
ΠοιοςΠοιων τα αιτήματα μετράνε;Ανά λογαριασμό χρήστη, ανά διεύθυνση IP, ανά API key
ΠόσαΠοιο είναι το όριο;5, 60, 1.000 αιτήματα
Ανά πόσο χρόνοΣε ποιο παράθυρο;Ανά δευτερόλεπτο, λεπτό, ώρα, ημέρα

Όταν φτάνει ένα αίτημα, η εφαρμογή ελέγχει το μετρητή για αυτόν τον «ποιο». Κάτω από το όριο: το αίτημα περνά και ο μετρητής αυξάνεται. Πάνω από το όριο: το αίτημα απορρίπτεται.

Υπάρχουν μερικοί συνηθισμένοι τρόποι καταμέτρησης:

ΜέθοδοςΠώς λειτουργείΑντιστάθμισμα
Σταθερό παράθυροΟ μετρητής μηδενίζεται με βάση το ρολόι — π.χ. κάθε λεπτό στο λεπτόΑπλό, αλλά επιτρέπει έκρηξη στο σημείο επαφής δύο παραθύρων
Κυλιόμενο παράθυροΚοιτάζει τα τελευταία 60 δευτερόλεπτα από τώραΠιο ομαλό, λίγο περισσότερη δουλειά για τον υπολογισμό
Token bucketΚάθε χρήστης έχει έναν κουβά που γεμίζει με σταθερό ρυθμό· κάθε αίτημα παίρνει ένα tokenΕπιτρέπει σύντομες εκρήξεις κρατώντας σταθερό τον μέσο όρο

Οι μετρήσεις πρέπει να αποθηκεύονται κάπου γρήγορα και κοινόχρηστα. Σε έναν μικρό μεμονωμένο server, η μνήμη αρκεί. Μόλις η εφαρμογή τρέχει σε πολλά μηχανήματα, ο μετρητής συνήθως ζει σε κοινόχρηστο χώρο όπως το Redis ή η βάση δεδομένων· αλλιώς κάθε μηχάνημα μετράει χωριστά και το πραγματικό όριο γίνεται πολλαπλάσιο.

Πώς μοιάζει μια απάντηση με περιορισμό

Όταν ένα αίτημα είναι πάνω από το όριο, ένα καλά σχεδιασμένο API απαντά με:

  • Κωδικό κατάστασης 429 Too Many Requests.
  • Συχνά μια κεφαλίδα Retry-After, που δείχνει πόσα δευτερόλεπτα να περιμένεις.
  • Μερικές φορές κεφαλίδες που δείχνουν το όριό σου και πόσα αιτήματα σου μένουν σε αυτό το παράθυρο (τα ονόματα διαφέρουν ανά πάροχο).

Η εφαρμογή σου πρέπει να αντιδρά σε 429 περιμένοντας και ξαναδοκιμάζοντας αργότερα — κατά προτίμηση με εκθετική υποχώρηση (exponential backoff), δηλαδή περιμένοντας λίγο περισσότερο μετά από κάθε αποτυχημένη προσπάθεια (1 δευτερόλεπτο, μετά 2, μετά 4), αντί να κτυπάς την υπηρεσία.

Ένα παράδειγμα: ένας βοηθός γραφής με AI

Υποθέστε ότι έχεις χτίσει εφαρμογή όπου οι χρήστες επικολλούν κείμενο και παίρνουν ξαναγραμμένη εκδοχή από AI.

Χωρίς όρια: κάποιος γράφει ένα script που στέλνει 20.000 αιτήματα μέσα στη νύχτα. Ο λογαριασμός του παρόχου AI σου εκτοξεύεται και ο λογαριασμός σου φτάνει το δικό του όριο, οπότε οι πραγματικοί χρήστες βλέπουν σφάλματα όλο το πρωί.

Με λογικά όρια:

  1. Ανά συνδεδεμένο χρήστη: 30 ξαναγραψίματα ανά ώρα στο δωρεάν πλάνο, 300 στο επί πληρωμή. Πάνω από το όριο, ο χρήστης βλέπει: «Έφτασες το όριο αυτής της ώρας. Δοκίμασε ξανά σε 12 λεπτά ή αναβάθμισε.»
  2. Ανά διεύθυνση IP στη φόρμα εγγραφής: 5 εγγραφές ανά ώρα, για να σταματήσουν τα bots που δημιουργούν χιλιάδες δωρεάν λογαριασμούς για να παρακάμψουν το όριο ανά χρήστη.
  3. Όριο δαπανών ρυθμισμένο στον πίνακα του παρόχου AI, ως τελευταία γραμμή άμυνας αν αποτύχουν όλα τα υπόλοιπα.
  4. Διαχείριση των ορίων του παρόχου: αν ο πάροχος AI επιστρέψει 429, ο server σου περιμένει και ξαναδοκιμάζει μία ή δύο φορές, και μετά δείχνει ένα φιλικό μήνυμα «είμαστε απασχολημένοι, δοκίμασε ξανά».

Τα όρια ελέγχονται στον server. Ένα όριο που υπάρχει μόνο στον browser — για παράδειγμα, απενεργοποίηση του κουμπιού μετά από 30 κλικ — μπορεί να παρακαμφθεί από όποιον καλεί το API σου απευθείας.

Βασικοί όροι

ΌροςΣημασία
Rate limitΟ μέγιστος αριθμός αιτημάτων που επιτρέπονται σε ένα χρονικό παράθυρο.
Quota (ποσόστωση)Μεγαλύτερο δικαίωμα, συχνά ανά ημέρα ή μήνα, μερικές φορές συνδεδεμένο με επί πληρωμή πλάνο.
429Ο κωδικός κατάστασης HTTP για «πάρα πολλά αιτήματα».
Retry-AfterΚεφαλίδα απάντησης που δείχνει πόσο να περιμένεις πριν ξαναδοκιμάσεις.
ThrottlingΕπιβράδυνση ή άρνηση αιτημάτων πάνω από ένα όριο. Συχνά χρησιμοποιείται ως συνώνυμο.
Exponential backoffΑυξανόμενη αναμονή ανάμεσα στις επαναλήψεις.
Burst (έκρηξη)Σύντομη αιχμή πολλών αιτημάτων ταυτόχρονα.
Brute-force attackΔοκιμή τεράστιου αριθμού κωδικών ή κωδικών μέχρι να πετύχει ένας.

Συνηθισμένες παρανοήσεις

  • «Το rate limiting είναι μόνο για μεγάλες εφαρμογές.» Οι μικρές εφαρμογές είναι κι αυτές στόχοι, γιατί τα bots σαρώνουν όλο το διαδίκτυο για ανοιχτές φόρμες και endpoints AI. Το κόστος της κατάχρησης δεν εξαρτάται από το μέγεθός σου.
  • «Αρκεί να κρύψεις το κουμπί.» Τα όρια στην πλευρά του browser είναι ευγένεια, όχι προστασία. Τα πραγματικά όρια πρέπει να εφαρμόζονται στον server.
  • «Τα όρια ανά IP είναι πάντα δίκαια.» Πολλοί άνθρωποι μοιράζονται μία διεύθυνση IP — ένα γραφείο, ένα σχολείο, ένα δίκτυο κινητής. Τα όρια ανά χρήστη είναι δικαιότερα όταν οι άνθρωποι έχουν συνδεθεί.
  • «Ένα 429 σημαίνει ότι η υπηρεσία είναι χαλασμένη.» Σημαίνει ότι την καλείς πολύ συχνά. Έλεγξε τον κώδικά σου για βρόχους και αποθήκευσε σε cache αποτελέσματα που δεν αλλάζουν συχνά — δες τι είναι το caching.
  • «Το rate limiting αντικαθιστά το όριο δαπανών.» Χρησιμοποίησε και τα δύο. Τα όρια στην εφαρμογή σου μπορεί να έχουν σφάλματα· το όριο δαπανών του παρόχου είναι το δίχτυ ασφαλείας σου.

Τι να ζητάς από τον AI builder σου

  • «Πρόσθεσε rate limiting στην πλευρά του server στη σύνδεση, την εγγραφή, την επαναφορά κωδικού και στο endpoint AI. Πρότεινε λογικά όρια.»
  • «Περιόρισε κάθε συνδεδεμένο χρήστη σε [N] αιτήματα AI ανά ώρα και δείξε ένα ξεκάθαρο μήνυμα με τον χρόνο αναμονής όταν τα φτάνει.»
  • «Όταν ένα εξωτερικό API επιστρέφει 429, ξαναδοκίμασε με εκθετική υποχώρηση έως 3 φορές και μετά δείξε φιλικό σφάλμα.»
  • «Πού αποθηκεύονται οι μετρητές των ορίων; Θα λειτουργούν ακόμα αν η εφαρμογή τρέχει σε περισσότερα από ένα μηχανήματα;»
  • «Κατέγραψε κάθε φορά που ένας χρήστης ή μια IP φτάνει όριο, ώστε να εντοπίζω την κατάχρηση.»
  • «Ποιες εξωτερικές υπηρεσίες καλεί αυτή η εφαρμογή και ποια είναι τα όριά τους;»

Rate limiting στο Mythex

Η τεκμηρίωση του Mythex είναι ξεκάθαρη για αυτό στις λειτουργίες AI: τα όρια ρυθμού, η ασφάλεια και οι έλεγχοι κόστους στις εφαρμογές που χτίζεις είναι δική σου ευθύνη — δες Χτίσιμο εφαρμογής AI. Ζήτα από τον agent να προσθέσει όρια στο ίδιο μήνυμα όπου ζητάς τη λειτουργία. Στο Pro, μια δημοσιευμένη υπηρεσία μπορεί να τρέχει σε έως τρία μηχανήματα όταν η κίνηση είναι μεγάλη (δες Όρια φιλοξενίας), οπότε ζήτα μετρητές που ζουν στη βάση δεδομένων και όχι στη μνήμη ενός server.

Σχετική ανάγνωση: τι είναι ένα API, πώς να χρησιμοποιείς LLM APIs και η λίστα ελέγχου ασφάλειας για εφαρμογές με AI.

Ερωτήσεις

Τι είναι το rate limiting με απλά λόγια;

Το rate limiting είναι ένας κανόνας που περιορίζει πόσα αιτήματα μπορεί να κάνει ένας χρήστης, μια συσκευή ή μια εφαρμογή σε δεδομένο χρονικό διάστημα — για παράδειγμα, 5 προσπάθειες σύνδεσης ανά λεπτό ή 100 κλήσεις API ανά ώρα. Τα αιτήματα πάνω από το όριο απορρίπτονται μέχρι να επαναφερθεί το παράθυρο.

Τι σημαίνει το σφάλμα 429 Too Many Requests;

Ο κωδικός κατάστασης HTTP 429 σημαίνει ότι έστειλες πολλά αιτήματα μέσα σε πολύ μικρό χρονικό διάστημα και έφτασες σε όριο. Η απάντηση συχνά περιλαμβάνει μια κεφαλίδα Retry-After που δείχνει πόσο να περιμένεις. Η λύση είναι να επιβραδύνεις, να ξαναδοκιμάζεις μετά από παύση ή να μειώσεις πόσο συχνά η εφαρμογή καλεί την υπηρεσία.

Γιατί χρειάζεται rate limiting η εφαρμογή μου με AI;

Κάθε αίτημα AI κοστίζει χρήματα σε tokens. Χωρίς όριο, ένας χρήστης ή ένα bot μπορεί να στείλει χιλιάδες αιτήματα, να φουσκώσει τον λογαριασμό σου ή να εξαντλήσει την ποσόστωση του παρόχου, και να κόψει τη λειτουργία για όλους. Τα όρια ανά χρήστη κρατούν το κόστος προβλέψιμο.

Είναι το rate limiting το ίδιο με το throttling;

Σχετίζονται στενά και συχνά χρησιμοποιούνται ως συνώνυμα. Το rate limiting συνήθως σημαίνει απόρριψη αιτημάτων πάνω από ένα όριο, ενώ το throttling μπορεί να σημαίνει και επιβράδυνσή τους ή τοποθέτησή τους σε ουρά αντί για άμεση άρνηση.

Το rate limiting σταματά επιθέσεις DDoS;

Βοηθά απέναντι σε μικρές πλημμύρες και κατάχρηση από μεμονωμένους χρήστες ή διευθύνσεις IP, αλλά μια μεγάλη κατανεμημένη επίθεση έρχεται από πολλές διευθύνσεις ταυτόχρονα. Η προστασία απέναντι σε αυτές συνήθως γίνεται σε επίπεδο δικτύου ή CDN, πριν η κίνηση φτάσει στην εφαρμογή σου.

Mythex · Pricing · Χτίστε οτιδήποτε με AI · Πρότυπα ιστοσελίδων και εφαρμογών · Το Mythex σε σύγκριση · Γλωσσάρι δημιουργίας εφαρμογών με AI · Δωρεάν εργαλεία δημιουργίας εφαρμογών με AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)