Τα καλύτερα εργαλεία προσωρινής αποθήκευσης ανοιχτού κώδικα για Linux το 2023


Τα αξιόπιστα κατανεμημένα υπολογιστικά συστήματα και οι εφαρμογές έχουν γίνει ο ακρογωνιαίος λίθος των εξέχουσες επιχειρήσεις, ειδικά στην αυτοματοποίηση και διαχείριση κρίσιμων για την αποστολή επιχειρηματικών διαδικασιών και στην παροχή υπηρεσιών στους πελάτες.

Ως προγραμματιστές και διαχειριστές συστημάτων αυτών των συστημάτων και εφαρμογών, αναμένεται να παρέχετε κάθε είδους λύσεις τεχνολογίας πληροφοριών (IT) που θα διασφαλίζουν ότι έχετε τα πιο αποτελεσματικά διαθέσιμα συστήματα.

Αυτό περιλαμβάνει εργασίες όπως ο σχεδιασμός, η δοκιμή και η εφαρμογή στρατηγικών για την απόδοση συστήματος/εφαρμογής, την αξιοπιστία, τη διαθεσιμότητα και την επεκτασιμότητα, ώστε να παρέχεται στους τελικούς χρήστες ένα ικανοποιητικό επίπεδο εξυπηρέτησης.

Η Caching είναι μία από τις πολλές, πολύ βασικές αλλά αποτελεσματικές τεχνικές παράδοσης εφαρμογών στις οποίες μπορείτε να βασιστείτε. Πριν προχωρήσουμε περαιτέρω, ας δούμε εν συντομία τι είναι η προσωρινή αποθήκευση, πού και/ή πώς μπορεί να εφαρμοστεί και τα οφέλη της.

Τι είναι η προσωρινή αποθήκευση ή η προσωρινή αποθήκευση περιεχομένου;

Η CachingContent Caching) είναι μια ευρέως χρησιμοποιούμενη τεχνική αποθήκευσης αντιγράφων δεδομένων σε μια τοποθεσία προσωρινής αποθήκευσης (γνωστή και ως cache) ώστε τα δεδομένα να είναι εύκολα και γρήγορα προσβάσιμα κατά την ανάκτησή τους από την αρχική αποθήκευση.

Τα δεδομένα που αποθηκεύονται σε μια κρυφή μνήμη μπορεί να περιλαμβάνουν αρχεία ή θραύσματα αρχείων (όπως αρχεία HTML, σενάρια, εικόνες, έγγραφα κ.λπ.), λειτουργίες ή εγγραφές βάσης δεδομένων, κλήσεις API, εγγραφές DNS κ.λπ. ανάλογα με τον τύπο και τον σκοπό της προσωρινής αποθήκευσης.

Μια κρυφή μνήμη μπορεί να έχει τη μορφή υλικού ή λογισμικού. Η προσωρινή μνήμη που βασίζεται σε λογισμικό (η οποία είναι το επίκεντρο αυτού του άρθρου) μπορεί να υλοποιηθεί σε διαφορετικά επίπεδα μιας στοίβας εφαρμογών.

Η Προσωρινή αποθήκευση μπορεί να εφαρμοστεί στην πλευρά του προγράμματος-πελάτη (ή στο επίπεδο παρουσίασης της εφαρμογής), για παράδειγμα, προσωρινή αποθήκευση στο πρόγραμμα περιήγησης ή προσωρινή αποθήκευση εφαρμογών (ή λειτουργία εκτός σύνδεσης). Τα περισσότερα, αν όχι όλα τα σύγχρονα προγράμματα περιήγησης συνοδεύονται από εφαρμογή μιας κρυφής μνήμης HTTP.

Μπορεί να έχετε ακούσει για τη δημοφιλή φράση «εκκαθαρίστε την προσωρινή μνήμη σας» όταν αποκτάτε πρόσβαση σε μια εφαρμογή Ιστού για να μπορείτε να βλέπετε τα πιο πρόσφατα δεδομένα ή περιεχόμενο σε έναν ιστότοπο ή μια εφαρμογή, αντί να χρησιμοποιεί το πρόγραμμα περιήγησης ένα παλιό αντίγραφο του το περιεχόμενο που είναι αποθηκευμένο τοπικά.

Ένα άλλο παράδειγμα προσωρινής αποθήκευσης από την πλευρά του πελάτη είναι η αποθήκευση DNS που συμβαίνει σε επίπεδο λειτουργικού συστήματος (OS). Είναι μια προσωρινή αποθήκευση πληροφοριών σχετικά με προηγούμενες αναζητήσεις DNS από το λειτουργικό σύστημα ή το πρόγραμμα περιήγησης ιστού.

Η προσωρινή αποθήκευση μπορεί επίσης να υλοποιηθεί σε επίπεδο δικτύου, είτε σε LAN είτε σε WAN μέσω διακομιστή μεσολάβησης. Ένα συνηθισμένο παράδειγμα αυτού του τύπου αποθήκευσης στην κρυφή μνήμη είναι τα CDN (Δίκτυα παράδοσης περιεχομένου), τα οποία είναι δίκτυα διακομιστών μεσολάβησης ιστού με παγκόσμια διανομή.

Τρίτον, μπορείτε επίσης να εφαρμόσετε προσωρινή αποθήκευση στον(ους) διακομιστή(ους) προέλευσης ή υποστήριξης. Υπάρχουν διάφορες μορφές προσωρινής αποθήκευσης σε επίπεδο διακομιστή, οι οποίες περιλαμβάνουν:

  • προσωρινή αποθήκευση διακομιστή ιστού (για αποθήκευση εικόνων, εγγράφων, σεναρίων και ούτω καθεξής).
  • προσωρινή αποθήκευση εφαρμογών ή απομνημόνευση (χρησιμοποιείται για την ανάγνωση αρχείων από δίσκο, δεδομένων από άλλες υπηρεσίες ή διεργασίες ή για την αίτηση δεδομένων από ένα API κ.λπ.).
  • αποθήκευση βάσης δεδομένων (για παροχή πρόσβασης στη μνήμη σε δεδομένα που χρησιμοποιούνται συχνά, όπως ζητούμενες σειρές βάσης δεδομένων, αποτελέσματα ερωτημάτων και άλλες λειτουργίες).

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

Γιατί να χρησιμοποιήσετε την προσωρινή αποθήκευση;

Η προσωρινή αποθήκευση προσφέρει πολλά πλεονεκτήματα όπως τα ακόλουθα:

  • Σε επίπεδο βάσης δεδομένων, βελτιώνει την απόδοση ανάγνωσης σε μικροδευτερόλεπτα για δεδομένα προσωρινής αποθήκευσης. Μπορείτε επίσης να χρησιμοποιήσετε μια προσωρινή μνήμη εγγραφής για να βελτιώσετε την απόδοση εγγραφής, όπου τα δεδομένα εγγράφονται στη μνήμη και αργότερα εγγράφονται στο δίσκο ή στην κύρια αποθήκευση σε καθορισμένα χρονικά διαστήματα. Αλλά η πτυχή της ακεραιότητας των δεδομένων μπορεί να έχει δυνητικά καταστροφικές επιπτώσεις. Για παράδειγμα, όταν το σύστημα κολλάει λίγο πριν δεσμευτούν τα δεδομένα στην κύρια αποθήκευση.
  • Σε επίπεδο εφαρμογής, μια κρυφή μνήμη μπορεί να αποθηκεύσει δεδομένα που διαβάζονται συχνά μέσα στην ίδια τη διαδικασία της εφαρμογής, μειώνοντας έτσι τους χρόνους αναζήτησης δεδομένων από δευτερόλεπτα σε μικροδευτερόλεπτα, ειδικά μέσω του δικτύου.
  • Λαμβάνοντας υπόψη τη συνολική απόδοση της εφαρμογής και του διακομιστή, η προσωρινή αποθήκευση συμβάλλει στη μείωση του φόρτου, του λανθάνοντος χρόνου και του εύρους ζώνης του διακομιστή σας, καθώς τα δεδομένα προσωρινής αποθήκευσης παρέχονται στους πελάτες, βελτιώνοντας έτσι τον χρόνο απόκρισης και τις ταχύτητες παράδοσης στους πελάτες.
  • Η προσωρινή αποθήκευση επιτρέπει επίσης τη διαθεσιμότητα περιεχομένου, ειδικά μέσω CDN, και πολλά άλλα οφέλη.

Σε αυτό το άρθρο, θα εξετάσουμε μερικά από τα κορυφαία εργαλεία ανοιχτού κώδικα (προσωρινή αποθήκευση εφαρμογών/βάσης δεδομένων και διακομιστές μεσολάβησης προσωρινής αποθήκευσης) για την υλοποίηση από την πλευρά του διακομιστή προσωρινή αποθήκευση στο Linux.

1. Redis

Το Redis (Remote Dictionary Server πλήρως) είναι ένα δωρεάν και ανοιχτού κώδικα, γρήγορο, υψηλής απόδοσης και ευέλικτο κατανεμημένο υπολογιστικό σύστημα στη μνήμη που μπορεί να χρησιμοποιηθεί από τις περισσότερες, αν όχι όλες τις γλώσσες προγραμματισμού.

Είναι ένας χώρος αποθήκευσης δομών δεδομένων στη μνήμη που λειτουργεί ως μηχανή αποθήκευσης κρυφής μνήμης, μόνιμη βάση δεδομένων στο δίσκο στη μνήμη και μεσίτης μηνυμάτων. Αν και έχει αναπτυχθεί και δοκιμαστεί σε Linux (η συνιστώμενη πλατφόρμα για ανάπτυξη) και OS X, το Redis λειτουργεί επίσης και σε άλλα συστήματα POSIX όπως το *BSD, χωρίς εξωτερικές εξαρτήσεις.

Το Redis υποστηρίζει πολλές δομές δεδομένων, όπως συμβολοσειρές, κατακερματισμοί, λίστες, σύνολα, ταξινομημένα σύνολα, bitmaps, ροές και άλλα. Αυτό επιτρέπει στους προγραμματιστές να χρησιμοποιούν μια συγκεκριμένη δομή δεδομένων για την επίλυση ενός συγκεκριμένου προβλήματος. Υποστηρίζει αυτόματες λειτουργίες στη δομή δεδομένων του, όπως προσάρτηση σε μια συμβολοσειρά, ώθηση στοιχείων σε μια λίστα, αύξηση της τιμής ενός κατακερματισμού, υπολογιστική διασταύρωση συνόλου και άλλα.

Τα βασικά χαρακτηριστικά του περιλαμβάνουν την αναπαραγωγή Redis master-slave (η οποία είναι ασύγχρονη από προεπιλογή), η υψηλή διαθεσιμότητα και η αυτόματη ανακατεύθυνση που προσφέρονται χρησιμοποιώντας το Redis Sentinel, το σύμπλεγμα Redis (μπορείτε να κλιμακωθείτε οριζόντια προσθέτοντας περισσότερους κόμβους συμπλέγματος) και το διαχωρισμό δεδομένων (κατανομή δεδομένων σε πολλαπλά Redis περιπτώσεις). Διαθέτει επίσης υποστήριξη για συναλλαγές, δέσμες ενεργειών Lua, μια σειρά από επιλογές επιμονής και κρυπτογράφηση της επικοινωνίας πελάτη-διακομιστή.

Όντας μια βάση δεδομένων στη μνήμη αλλά επίμονη στο δίσκο, το Redis προσφέρει την καλύτερη απόδοση όταν λειτουργεί καλύτερα με ένα σύνολο δεδομένων στη μνήμη. Ωστόσο, μπορείτε να το χρησιμοποιήσετε με μια βάση δεδομένων στο δίσκο, όπως MySQL, PostgreSQL και πολλά άλλα. Για παράδειγμα, μπορείτε να λάβετε μικρά δεδομένα με μεγάλη βαρύτητα εγγραφής στο Redis και να αφήσετε άλλα κομμάτια των δεδομένων σε μια βάση δεδομένων στο δίσκο.

Το Redis υποστηρίζει την ασφάλεια με πολλούς τρόπους: ένας με τη χρήση μιας δυνατότητας «προστατευμένης λειτουργίας» για την προστασία των παρουσιών Redis από την πρόσβαση από εξωτερικά δίκτυα. Υποστηρίζει επίσης έλεγχο ταυτότητας πελάτη-διακομιστή (όπου ένας κωδικός πρόσβασης διαμορφώνεται στον διακομιστή και παρέχεται στον πελάτη) και TLS σε όλα τα κανάλια επικοινωνίας, όπως συνδέσεις πελάτη, συνδέσμους αναπαραγωγής, το πρωτόκολλο διαύλου Redis Cluster και άλλα.

Το Redis έχει πάρα πολλές περιπτώσεις χρήσης που περιλαμβάνουν προσωρινή αποθήκευση βάσεων δεδομένων, προσωρινή αποθήκευση πλήρους σελίδας, διαχείριση δεδομένων περιόδου λειτουργίας χρήστη, αποθήκευση αποκρίσεων API, σύστημα ανταλλαγής μηνυμάτων Δημοσίευση/Εγγραφή, ουρά μηνυμάτων και πολλά άλλα. Αυτά μπορούν να εφαρμοστούν σε παιχνίδια, εφαρμογές κοινωνικής δικτύωσης, ροές RSS, αναλύσεις δεδομένων σε πραγματικό χρόνο, προτάσεις χρηστών και ούτω καθεξής.

2. Memcached

Το Memcached είναι ένα δωρεάν και ανοιχτού κώδικα, απλό αλλά ισχυρό, κατανεμημένο σύστημα προσωρινής αποθήκευσης αντικειμένων μνήμης. Είναι ένας χώρος αποθήκευσης κλειδιού-τιμής στη μνήμη για μικρά κομμάτια δεδομένων, όπως αποτελέσματα κλήσεων βάσης δεδομένων, κλήσεις API ή απόδοση σελίδων. Λειτουργεί σε λειτουργικά συστήματα παρόμοια με το Unix, συμπεριλαμβανομένων Linux και OS X, καθώς και σε Microsoft Windows.

Ως εργαλείο προγραμματιστή, προορίζεται για χρήση στην ενίσχυση των ταχυτήτων των δυναμικών εφαρμογών ιστού μέσω της προσωρινής αποθήκευσης περιεχομένου (από προεπιλογή, μια κρυφή μνήμη Λιγότερο πρόσφατα χρησιμοποιημένη (LRU)) μειώνοντας έτσι την φόρτωση βάσης δεδομένων στο δίσκο – λειτουργεί ως βραχυπρόθεσμη μνήμη για εφαρμογές. Προσφέρει ένα API για τις πιο δημοφιλείς γλώσσες προγραμματισμού.

Το Memcached υποστηρίζει συμβολοσειρές ως τον μοναδικό τύπο δεδομένων. Έχει μια αρχιτεκτονική πελάτη-διακομιστή, όπου η μισή λογική συμβαίνει στην πλευρά του πελάτη και η άλλη μισή στην πλευρά του διακομιστή. Είναι σημαντικό ότι οι πελάτες κατανοούν πώς να επιλέγουν σε ποιον διακομιστή να γράφουν ή από ποιον να διαβάζουν, για ένα αντικείμενο. Επίσης, ένας πελάτης ξέρει πολύ καλά τι πρέπει να κάνει σε περίπτωση που δεν μπορεί να συνδεθεί σε διακομιστή.

Αν και είναι ένα σύστημα κατανεμημένης προσωρινής αποθήκευσης, επομένως υποστηρίζει ομαδοποίηση, οι διακομιστές Memcached είναι αποσυνδεδεμένοι μεταξύ τους (δηλαδή δεν γνωρίζουν ο ένας τον άλλον). Αυτό σημαίνει ότι δεν υπάρχει υποστήριξη αναπαραγωγής όπως στο Redis. Καταλαβαίνουν επίσης πώς να αποθηκεύουν και να φέρουν αντικείμενα και να διαχειρίζονται πότε πρέπει να απομακρύνουν ή να επαναχρησιμοποιήσουν τη μνήμη. Μπορείτε να αυξήσετε τη διαθέσιμη μνήμη προσθέτοντας περισσότερους διακομιστές.

Υποστηρίζει έλεγχο ταυτότητας και κρυπτογράφηση μέσω TLS από το Memcached 1.5.13, αλλά αυτή η δυνατότητα βρίσκεται ακόμα σε πειραματική φάση.

3. Apache Ignite

Το Apache Ignite, είναι επίσης ένα δωρεάν και ανοιχτού κώδικα, οριζόντια επεκτάσιμο κατανεμημένο στη μνήμη σύστημα αποθήκευσης κλειδιού-τιμής, κρυφής μνήμης και βάσης δεδομένων πολλαπλών μοντέλων που παρέχει ισχυρά API επεξεργασίας για τον υπολογισμό κατανεμημένων δεδομένων. Είναι επίσης ένα πλέγμα δεδομένων στη μνήμη που μπορεί να χρησιμοποιηθεί είτε στη μνήμη είτε με εγγενή εμμονή Ignite. Λειτουργεί σε συστήματα παρόμοια με το UNIX, όπως το Linux και επίσης τα Windows.

Διαθέτει αποθήκευση πολλαπλών επιπέδων, πλήρη υποστήριξη SQL και συναλλαγές ACID (Atomicity, Consistency, Isolation, Durability) (υποστηριζόμενες μόνο σε επίπεδο API κλειδιού-τιμής) σε πολλούς κόμβους συμπλέγματος, επεξεργασία με ταυτόχρονη τοποθεσία, και μηχανικής μάθησης. Υποστηρίζει αυτόματη ενοποίηση με βάσεις δεδομένων τρίτων, συμπεριλαμβανομένων οποιωνδήποτε RDBMS (όπως MySQL, PostgreSQL, Oracle Database κ.λπ.) ή καταστημάτων NoSQL.

Είναι σημαντικό να σημειωθεί ότι παρόλο που το Ignite λειτουργεί ως χώρος αποθήκευσης δεδομένων SQL, δεν είναι πλήρως μια βάση δεδομένων SQL. Χειρίζεται σαφώς περιορισμούς και ευρετήρια σε σύγκριση με τις παραδοσιακές βάσεις δεδομένων. Υποστηρίζει πρωτεύοντα και δευτερεύοντα ευρετήρια, αλλά μόνο τα κύρια ευρετήρια χρησιμοποιούνται για την επιβολή της μοναδικότητας. Εξάλλου, δεν έχει καμία υποστήριξη για ξένους βασικούς περιορισμούς.

Το Ignite υποστηρίζει επίσης την ασφάλεια, επιτρέποντάς σας να ενεργοποιήσετε τον έλεγχο ταυτότητας στον διακομιστή και παρέχοντας διαπιστευτήρια χρήστη στους πελάτες. Υπάρχει επίσης υποστήριξη για επικοινωνία με υποδοχή SSL για την παροχή ασφαλούς σύνδεσης μεταξύ όλων των κόμβων Ignite.

Το Ignite έχει πολλές περιπτώσεις χρήσης που περιλαμβάνουν συστήματα προσωρινής αποθήκευσης, επιτάχυνση φόρτου εργασίας συστήματος, επεξεργασία δεδομένων σε πραγματικό χρόνο και αναλυτικά στοιχεία. Μπορεί επίσης να χρησιμοποιηθεί ως γραφοκεντρική πλατφόρμα.

4. Διακομιστής Couchbase

Ο διακομιστής Couchbase είναι επίσης μια βάση δεδομένων αφοσίωσης ανοιχτού κώδικα, κατανεμημένης, NoSQL προσανατολισμένη στα έγγραφα που αποθηκεύει δεδομένα ως στοιχεία σε μορφή κλειδιού-τιμής. Λειτουργεί σε Linux και άλλα λειτουργικά συστήματα όπως τα Windows και το Mac OS X. Χρησιμοποιεί μια πλούσια σε χαρακτηριστικά, προσανατολισμένη στα έγγραφα γλώσσα ερωτημάτων που ονομάζεται N1QL, η οποία παρέχει ισχυρές υπηρεσίες αναζήτησης και ευρετηρίασης για την υποστήριξη λειτουργιών δευτερολέπτου σε δεδομένα.

Τα αξιοσημείωτα χαρακτηριστικά του είναι ένα γρήγορο κατάστημα βασικών τιμών με διαχειριζόμενη κρυφή μνήμη, στοχευμένα ευρετήρια, μια ισχυρή μηχανή ερωτημάτων, αρχιτεκτονική κλιμάκωσης (πολυδιάστατη κλιμάκωση), ενσωμάτωση μεγάλων δεδομένων και SQL, ασφάλεια πλήρους στοίβας και υψηλή διαθεσιμότητα.

Ο Διακομιστής Couchbase συνοδεύεται από εγγενή υποστήριξη συμπλέγματος πολλαπλών περιπτώσεων, όπου ένα εργαλείο διαχείρισης συμπλέγματος συντονίζει όλες τις δραστηριότητες του κόμβου και παρέχει απλώς μια διεπαφή σε όλο το σύμπλεγμα στους πελάτες. Είναι σημαντικό ότι μπορείτε να προσθέσετε, να αφαιρέσετε ή να αντικαταστήσετε κόμβους όπως απαιτείται, χωρίς χρόνο διακοπής λειτουργίας. Υποστηρίζει επίσης την αναπαραγωγή δεδομένων μεταξύ των κόμβων ενός συμπλέγματος και την επιλεκτική αναπαραγωγή δεδομένων στα κέντρα δεδομένων.

Εφαρμόζει ασφάλεια μέσω TLS χρησιμοποιώντας αποκλειστικές θύρες διακομιστή Couchbase, διαφορετικούς μηχανισμούς ελέγχου ταυτότητας (χρησιμοποιώντας διαπιστευτήρια ή πιστοποιητικά), έλεγχο πρόσβασης βάσει ρόλων (για έλεγχο ταυτότητας κάθε χρήστη για καθορισμένους από το σύστημα ρόλους που του έχουν ανατεθεί), έλεγχος, αρχεία καταγραφής και συνεδρίες .

Οι περιπτώσεις χρήσης του περιλαμβάνουν ενοποιημένη διεπαφή προγραμματισμού, αναζήτηση πλήρους κειμένου, παράλληλη επεξεργασία ερωτημάτων, διαχείριση εγγράφων, ευρετηρίαση και πολλά άλλα. Έχει σχεδιαστεί ειδικά για να παρέχει διαχείριση δεδομένων χαμηλής καθυστέρησης για μεγάλης κλίμακας διαδραστικές εφαρμογές ιστού, κινητών και IoT.

5. Hazelcast IMDG

Το Hazelcast IMDG (In-Memory Data Grid) είναι ένα ανοιχτού κώδικα, ελαφρύ, γρήγορο και επεκτάσιμο ενδιάμεσο λογισμικό πλέγματος δεδομένων στη μνήμη, που παρέχει ελαστικά επεκτάσιμο κατανεμημένο υπολογισμό στη μνήμη. Το Hazelcast IMDG εκτελείται επίσης σε Linux, Windows, Mac OS X και σε οποιαδήποτε άλλη πλατφόρμα με εγκατεστημένη Java. Υποστηρίζει μια μεγάλη ποικιλία από ευέλικτες και εγγενείς δομές δεδομένων όπως Map, Set, List, MultiMap, RingBuffer και HyperLogLog.

Το Hazelcast είναι peer-to-peer και υποστηρίζει απλή επεκτασιμότητα, ρύθμιση συμπλέγματος (με επιλογές για συλλογή στατιστικών στοιχείων, παρακολούθηση μέσω πρωτοκόλλου JMX και διαχείριση του συμπλέγματος με χρήσιμα βοηθητικά προγράμματα), κατανεμημένες δομές δεδομένων και συμβάντα, τμηματοποίηση δεδομένων και συναλλαγές. Είναι επίσης περιττό καθώς διατηρεί το αντίγραφο ασφαλείας κάθε καταχώρισης δεδομένων σε πολλά μέλη. Για να κλιμακώσετε το σύμπλεγμα σας, απλώς ξεκινήστε μια άλλη παρουσία, τα δεδομένα και τα αντίγραφα ασφαλείας εξισορροπούνται αυτόματα και ομοιόμορφα.

Παρέχει μια συλλογή από χρήσιμα API για πρόσβαση στις CPU στο σύμπλεγμα σας για μέγιστη ταχύτητα επεξεργασίας. Προσφέρει επίσης κατανεμημένες υλοποιήσεις ενός μεγάλου αριθμού διεπαφών φιλικών για προγραμματιστές από την Java, όπως Map, Queue, ExecutorService, Lock και JCache.

Τα χαρακτηριστικά ασφαλείας του περιλαμβάνουν μέλη συμπλέγματος και έλεγχο ταυτότητας πελάτη και ελέγχου πρόσβασης στις λειτουργίες του πελάτη μέσω των χαρακτηριστικών ασφαλείας που βασίζονται σε JAAS. Επιτρέπει επίσης την υποκλοπή συνδέσεων υποδοχών και απομακρυσμένων λειτουργιών που εκτελούνται από τους πελάτες, κρυπτογράφηση επικοινωνίας σε επίπεδο υποδοχής μεταξύ των μελών του συμπλέγματος και ενεργοποίηση της επικοινωνίας υποδοχής SSL/TLS. Όμως, σύμφωνα με την επίσημη τεκμηρίωση, τα περισσότερα από αυτά τα χαρακτηριστικά ασφαλείας προσφέρονται στην έκδοση Enterprise.

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

6. Mcrouter

Το Mcrouter είναι ένας δωρεάν και ανοιχτού κώδικα δρομολογητής πρωτοκόλλου Memcached για την κλιμάκωση των αναπτύξεων Memcached, που αναπτύχθηκε και διατηρείται από το Facebook. Διαθέτει πρωτόκολλο Memcached ASCII, ευέλικτη δρομολόγηση, υποστήριξη πολλαπλών συμπλεγμάτων, κρυφές μνήμες πολλαπλών επιπέδων, ομαδοποίηση συνδέσεων, σχήματα πολλαπλών κατακερματισμού, δρομολόγηση προθέματος, επαναλαμβανόμενα pools, σκίαση κυκλοφορίας παραγωγής, online αναδιαμόρφωση και παρακολούθηση υγείας προορισμού/αυτόματο failover.

Επιπλέον, υποστηρίζει προθέρμανση ψυχρής κρυφής μνήμης, εντολές εμπλουτισμένων στατιστικών και εντοπισμού σφαλμάτων, αξιόπιστη ποιότητα υπηρεσίας ροής διαγραφής, μεγάλες τιμές και λειτουργίες εκπομπής και διαθέτει υποστήριξη IPv6 και SSL.

Χρησιμοποιείται στο Facebook και το Instagram ως βασικό συστατικό της υποδομής κρυφής μνήμης, για να χειριστεί σχεδόν 5 δισεκατομμύρια αιτήματα ανά δευτερόλεπτο στο μέγιστο.

7. Varnish Cache

Το Varnish Cache είναι ένας ευέλικτος, μοντέρνος και πολλαπλών χρήσεων επιταχυντής εφαρμογών ιστού που βρίσκεται ανάμεσα σε πελάτες web και έναν διακομιστή προέλευσης. Λειτουργεί σε όλες τις σύγχρονες πλατφόρμες Linux, FreeBSD και Solaris (μόνο x86). Είναι μια εξαιρετική μηχανή προσωρινής αποθήκευσης και επιταχυντής περιεχομένου που μπορείτε να αναπτύξετε μπροστά από έναν διακομιστή ιστού όπως NGINX, Apache και πολλοί άλλοι, για να ακούσετε στην προεπιλεγμένη θύρα HTTP για να λάβετε και να προωθήσετε αιτήματα πελατών στον διακομιστή ιστού και να παραδώσετε τον ιστό απάντηση των διακομιστών στον πελάτη.

Ενώ λειτουργεί ως μεσάζων μεταξύ των πελατών και των διακομιστών προέλευσης, το Varnish Cache προσφέρει πολλά πλεονεκτήματα, με το στοιχείο να αποθηκεύει προσωρινά περιεχόμενο ιστού στη μνήμη για να μειώσει το φόρτο του διακομιστή ιστού και να βελτιώσει τις ταχύτητες παράδοσης στους πελάτες.

Αφού λάβει ένα αίτημα HTTP από έναν πελάτη, το προωθεί στον διακομιστή ιστού υποστήριξης. Μόλις αποκριθεί ο διακομιστής web, το Varnish αποθηκεύει το περιεχόμενο στη μνήμη και παραδίδει την απάντηση στον πελάτη. Όταν ο πελάτης ζητήσει το ίδιο περιεχόμενο, το Varnish θα το εξυπηρετήσει από την απόκριση της εφαρμογής ενίσχυσης της προσωρινής μνήμης. Εάν δεν μπορεί να εξυπηρετήσει περιεχόμενο από τη μνήμη cache, το αίτημα προωθείται στο backend και η απάντηση αποθηκεύεται προσωρινά και παραδίδεται στον πελάτη.

Το Varnish διαθέτει VCL (Varnish Configuration Language – μια ευέλικτη γλώσσα για συγκεκριμένο τομέα) που χρησιμοποιείται για τη διαμόρφωση του τρόπου χειρισμού των αιτημάτων και πολλά άλλα, Varnish Ενότητες (VMODS) που είναι επεκτάσεις για το Varnish Cache.

Από πλευράς ασφάλειας, το Varnish Cache υποστηρίζει καταγραφή, επιθεώρηση αιτημάτων, περιορισμό, έλεγχο ταυτότητας και εξουσιοδότηση μέσω VMODS, αλλά δεν διαθέτει εγγενή υποστήριξη για SSL/TLS. Μπορείτε να ενεργοποιήσετε το HTTPS για το Varnish Cache χρησιμοποιώντας έναν διακομιστή μεσολάβησης SSL/TLS, όπως το Hitch ή το NGINX.

Μπορείτε επίσης να χρησιμοποιήσετε το Varnish Cache ως τείχος προστασίας εφαρμογών ιστού, προστασία επίθεσης DDoS, προστατευτικό hotlinking, εξισορρόπηση φορτίου, σημείο ενοποίησης, πύλη ενιαίας σύνδεσης, μηχανισμό πολιτικής ελέγχου ταυτότητας και εξουσιοδότησης, γρήγορη επιδιόρθωση για ασταθή backend και δρομολογητή αιτημάτων HTTP.

8. Squid Caching Proxy

Μια άλλη δωρεάν και ανοιχτού κώδικα, εξαιρετική και ευρέως χρησιμοποιούμενη λύση διακομιστή μεσολάβησης και προσωρινής αποθήκευσης για Linux είναι το Squid. Είναι ένα πλούσιο σε χαρακτηριστικά λογισμικό διακομιστή προσωρινής μνήμης διακομιστή μεσολάβησης web που παρέχει υπηρεσίες διακομιστή μεσολάβησης και προσωρινής μνήμης για δημοφιλή πρωτόκολλα δικτύου, συμπεριλαμβανομένων των HTTP, HTTPS και FTP. Λειτουργεί επίσης σε άλλες πλατφόρμες UNIX και Windows.

Ακριβώς όπως το Varnish Cache, λαμβάνει αιτήματα από πελάτες και τα μεταβιβάζει σε καθορισμένους διακομιστές υποστήριξης. Όταν ο διακομιστής υποστήριξης αποκρίνεται, αποθηκεύει ένα αντίγραφο του περιεχομένου σε μια κρυφή μνήμη και το διαβιβάζει στον πελάτη. Μελλοντικά αιτήματα για το ίδιο περιεχόμενο θα εξυπηρετούνται από την κρυφή μνήμη, με αποτέλεσμα την ταχύτερη παράδοση περιεχομένου στον πελάτη. Έτσι, βελτιστοποιεί τη ροή δεδομένων μεταξύ του πελάτη και του διακομιστή για να βελτιώσει την απόδοση και αποθηκεύει στην κρυφή μνήμη περιεχόμενο που χρησιμοποιείται συχνά για να μειώσει την κίνηση του δικτύου και να εξοικονομήσει εύρος ζώνης.

Το Squid διαθέτει λειτουργίες όπως η διανομή του φορτίου σε αλληλοεπικοινωνιακές ιεραρχίες διακομιστών μεσολάβησης, η παραγωγή δεδομένων σχετικά με μοτίβα χρήσης ιστού (π.χ. στατιστικά στοιχεία για ιστότοπους με τις περισσότερες επισκέψεις), σας δίνει τη δυνατότητα να αναλύετε, να καταγράφετε, να αποκλείετε, να αντικαθιστάτε ή να τροποποιείτε τα μηνύματα μεσολάβησης.

Υποστηρίζει επίσης χαρακτηριστικά ασφαλείας, όπως εμπλουτισμένο έλεγχο πρόσβασης, εξουσιοδότηση και έλεγχο ταυτότητας, υποστήριξη SSL/TLS και καταγραφή δραστηριοτήτων.

9. NGINX

Το NGINX (προφέρεται ως Engine-X) είναι μια ενοποιημένη λύση ανοιχτού κώδικα, υψηλής απόδοσης, με πλήρη χαρακτηριστικά και πολύ δημοφιλής για τη ρύθμιση της υποδομής ιστού. Είναι ένας διακομιστής HTTP, ένας διακομιστής μεσολάβησης αντίστροφου, ένας διακομιστής μεσολάβησης αλληλογραφίας και ένας γενικός διακομιστής μεσολάβησης TCP/UDP.

Το NGINX προσφέρει βασικές δυνατότητες αποθήκευσης στην κρυφή μνήμη όπου το αποθηκευμένο περιεχόμενο αποθηκεύεται σε μια μόνιμη κρυφή μνήμη στο δίσκο. Το συναρπαστικό μέρος της προσωρινής αποθήκευσης περιεχομένου στο NGINX είναι ότι μπορεί να ρυθμιστεί ώστε να παρέχει μπαγιάτικο περιεχόμενο από την κρυφή μνήμη του όταν δεν μπορεί να ανακτήσει νέο περιεχόμενο από τους διακομιστές προέλευσης.

Το NGINX προσφέρει μια πληθώρα λειτουργιών ασφαλείας για την ασφάλεια των συστημάτων web σας, όπως τερματισμός SSL, περιορισμός πρόσβασης με βασικό έλεγχο ταυτότητας HTTP, έλεγχος ταυτότητας βάσει του αποτελέσματος δευτερεύοντος αιτήματος, έλεγχος ταυτότητας JWT, περιορισμός πρόσβασης σε πόρους με μεσολάβηση HTTP, περιορισμός πρόσβασης ανά γεωγραφική τοποθεσία, και πολλα ΑΚΟΜΑ.

Συνήθως αναπτύσσεται ως αντίστροφος διακομιστής μεσολάβησης, εξισορρόπηση φορτίου, τερματιστής SSL/πύλη ασφαλείας, επιτάχυνση εφαρμογών/ προσωρινή μνήμη περιεχομένου και πύλη API σε μια στοίβα εφαρμογών. Χρησιμοποιείται επίσης για ροή πολυμέσων.

10. Διακομιστής κυκλοφορίας Apache

Τελευταίο αλλά εξίσου σημαντικό, έχουμε τον Apache Traffic Server, έναν διακομιστή μεσολάβησης ανοιχτού κώδικα, γρήγορο, επεκτάσιμο και επεκτάσιμο προσωρινής αποθήκευσης με υποστήριξη για HTTP/1.1 και HTTP/2.0. Έχει σχεδιαστεί για να βελτιώνει την αποτελεσματικότητα και την απόδοση του δικτύου με αποθήκευση περιεχομένου με συχνή πρόσβαση στην κρυφή μνήμη στην άκρη ενός δικτύου, για επιχειρήσεις, παρόχους διακομιστών Internet (Internet Server Providers), βασικούς παρόχους και πολλά άλλα.

Υποστηρίζει τόσο τον εμπρός όσο και τον αντίστροφο διακομιστή μεσολάβησης της κίνησης HTTP/HTTPS. Μπορεί επίσης να ρυθμιστεί ώστε να εκτελείται σε έναν ή και στους δύο τρόπους ταυτόχρονα. Διαθέτει επίμονη προσωρινή αποθήκευση, API προσθηκών. υποστήριξη για ICP (Internet Cache Protocol), ESI (Edge Side Includes). Keep-ALive, και πολλά άλλα.

Όσον αφορά την ασφάλεια, ο Διακομιστής επισκεψιμότητας υποστηρίζει τον έλεγχο της πρόσβασης πελάτη, επιτρέποντάς σας να διαμορφώσετε πελάτες στους οποίους επιτρέπεται να χρησιμοποιούν την προσωρινή μνήμη διακομιστή μεσολάβησης, τον τερματισμό SSL τόσο για συνδέσεις μεταξύ των πελατών και του ίδιου όσο και μεταξύ του ίδιου και του διακομιστή προέλευσης. Υποστηρίζει επίσης έλεγχο ταυτότητας και βασική εξουσιοδότηση μέσω plugin, καταγραφή (κάθε αίτησης που λαμβάνει και κάθε σφάλμα που εντοπίζει) και παρακολούθηση.

Ο Διακομιστής επισκεψιμότητας μπορεί να χρησιμοποιηθεί ως προσωρινή μνήμη διακομιστή μεσολάβησης ιστού, διακομιστής μεσολάβησης προώθησης, αντίστροφος διακομιστής μεσολάβησης, διαφανής διακομιστής μεσολάβησης, εξισορρόπηση φορτίου ή σε ιεραρχία κρυφής μνήμης.

Τελικές παρατηρήσεις

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

Σε αυτό το άρθρο, εξετάσαμε τα κορυφαία εργαλεία προσωρινής αποθήκευσης ανοιχτού κώδικα για χρήση σε συστήματα Linux. Εάν γνωρίζετε άλλα εργαλεία προσωρινής αποθήκευσης ανοιχτού κώδικα που δεν αναφέρονται εδώ, μοιραστείτε τα μαζί μας μέσω της παρακάτω φόρμας σχολίων. Μπορείτε επίσης να μοιραστείτε τις σκέψεις σας για αυτό το άρθρο μαζί μας.