Οι ποσοστώσεις Kafka αποτελούν αναπόσπαστο κομμάτι των συστάδων Kafka με πολλούς μισθωτές. Αποτρέπουν την αρνητική επίδραση της απόδοσης του συμπλέγματος Kafka από εφαρμογές με κακή συμπεριφορά που καταναλώνουν υπερβολικά πόρους συμπλέγματος. Επιπλέον, επιτρέπουν στην κεντρική πλατφόρμα δεδομένων ροής να λειτουργεί ως πλατφόρμα πολλαπλών μισθωτών και να χρησιμοποιείται από κατάντη και ανοδικές εφαρμογές σε πολλαπλούς επιχειρηματικούς τομείς. Ο Κάφκα υποστηρίζει δύο τύπους ποσοστώσεων: ποσοστώσεις εύρους ζώνης δικτύου και αιτήματα ποσοστώσεων. Τα όρια εύρους ζώνης δικτύου ορίζουν κατώφλια ρυθμού byte, όπως πόσα δεδομένα μπορούν να παράγουν και να καταναλώνουν οι εφαρμογές πελάτη σε κάθε μεσολαβητή σε ένα σύμπλεγμα Kafka, μετρημένο σε byte ανά δευτερόλεπτο. Τα ποσοστά ποσοστών αιτήματος περιορίζουν το ποσοστό του χρόνου που αφιερώνει κάθε μεσίτης για την επεξεργασία αιτημάτων εφαρμογών πελατών. Ανάλογα με τη διαμόρφωσή σας, τα όρια Kafka μπορούν να οριστούν για συγκεκριμένους χρήστες, συγκεκριμένα αναγνωριστικά πελάτη ή και τα δύο.
In Μέρος 1 αυτής της σειράς δύο μερών, συζητήσαμε τις έννοιες του τρόπου επιβολής των ποσοστώσεων Κάφκα Amazon Managed Streaming για το Apache Kafka (Amazon MSK) συμπλέγματα κατά τη χρήση Διαχείριση ταυτότητας και πρόσβασης AWS Έλεγχος πρόσβασης (IAM).
Σε αυτήν την ανάρτηση, σας καθοδηγούμε στη βήμα προς βήμα υλοποίηση της ρύθμισης ποσοστώσεων Kafka σε ένα σύμπλεγμα MSK ενώ χρησιμοποιείτε τον έλεγχο πρόσβασης IAM και δοκιμάζοντάς τα μέσω δειγμάτων εφαρμογών πελατών.
Επισκόπηση λύσεων
Το παρακάτω σχήμα, το οποίο παρουσιάσαμε για πρώτη φορά Μέρος 1, δείχνει πώς οι εφαρμογές πελάτη Kafka (ProducerApp-1
, ConsumerApp-1
, να ConsumerApp-2
) πρόσβαση Topic-B
στο σύμπλεγμα MSK υποθέτοντας εγγραφή και ανάγνωση ρόλων IAM. Κάθε εφαρμογή πελάτη παραγωγού και καταναλωτή έχει ένα όριο που καθορίζει πόσα δεδομένα μπορούν να παράγουν ή να καταναλώσουν σε byte/δευτερόλεπτο. ο ProducerApp-1
η ποσόστωση του επιτρέπει να παράγει έως και 1024 byte/δευτερόλεπτο ανά μεσίτη. Ομοίως, το ConsumerApp-1
και ConsumerApp-2
Οι ποσοστώσεις τους επιτρέπουν να καταναλώνουν 5120 και 1024 byte/δευτερόλεπτο ανά μεσίτη, αντίστοιχα. Ακολουθεί μια σύντομη εξήγηση της ροής που φαίνεται στο διάγραμμα αρχιτεκτονικής:
- P1 -
ProducerApp-1
(μέσω τουProducerApp-1-Role
ρόλος IAM) αναλαμβάνει τοTopic-B-Write-Role
Ρόλος IAM για αποστολή μηνυμάτωνTopic-B
- P2 - Με το
Topic-B-Write-Role
Ο ρόλος του IAM αναλαμβάνεται,ProducerApp-1
αρχίζει να στέλνει μηνύματα σεTopic-B
- C1 -
ConsumerApp-1
(μέσω τουConsumerApp-1-Role
ρόλος ΙΑΜ) καιConsumerApp-2
(μέσω τουConsumerApp-2-Role
ρόλος IAM) υποθέτουμε τοTopic-B-Read-Role
Ρόλος IAM για ανάγνωση μηνυμάτων απόTopic-B
- C2 - Με το
Topic-B-Read-Role
Ο ρόλος του IAM αναλαμβάνεται,ConsumerApp-1
καιConsumerApp-2
αρχίστε να καταναλώνετε μηνύματα απόTopic-B
Σημειώστε ότι αυτή η ανάρτηση χρησιμοποιεί το Διεπαφή γραμμής εντολών AWS (AWS CLI), AWS CloudFormation πρότυπα, και το Κονσόλα διαχείρισης AWS για την παροχή και την τροποποίηση πόρων AWS και οι πόροι που παρέχονται θα χρεώνονται στον λογαριασμό σας AWS.
Τα βήματα υψηλού επιπέδου είναι τα εξής:
- Παροχή ενός συμπλέγματος MSK με έλεγχο πρόσβασης IAM και Amazon Elastic Compute Cloud Παρουσίες (Amazon EC2) για εφαρμογές πελατών.
- Δημιουργία
Topic-B
στο σύμπλεγμα MSK. - Δημιουργήστε ρόλους IAM για πρόσβαση στις εφαρμογές πελάτη
Topic-B
. - Εκτελέστε τις εφαρμογές παραγωγού και καταναλωτή χωρίς να ορίσετε ποσοστώσεις.
- Διαμορφώστε τις ποσοστώσεις παραγωγής και κατανάλωσης για τις εφαρμογές πελάτη.
- Εκτελέστε ξανά τις εφαρμογές μετά τον καθορισμό των ποσοστώσεων.
Προϋποθέσεις
Συνιστάται να διαβάσετε Μέρος 1 αυτής της σειράς πριν συνεχίσετε. Για να ξεκινήσετε, χρειάζεστε τα εξής:
- Ένας λογαριασμός AWS που θα αναφέρεται ως ο δοκιμαστικός λογαριασμός σε αυτήν την ανάρτηση, με την προϋπόθεση ότι το αναγνωριστικό του λογαριασμού του είναι
1111 1111 1111
- Δικαιώματα δημιουργίας, διαγραφής και τροποποίησης πόρων AWS στον δοκιμαστικό λογαριασμό
Παρέχετε ένα σύμπλεγμα MSK με έλεγχο πρόσβασης IAM και παρουσίες EC2
Αυτό το βήμα περιλαμβάνει την παροχή ενός συμπλέγματος MSK με έλεγχο πρόσβασης IAM σε ένα VPC στον δοκιμαστικό λογαριασμό. Επιπλέον, δημιουργούμε τέσσερα στιγμιότυπα EC2 για να κάνουμε αλλαγές διαμόρφωσης στο σύμπλεγμα MSK και στις εφαρμογές κεντρικού παραγωγού και πελάτη πελάτη.
Ανάπτυξη στοίβας CloudFormation
- Κλωνοποιήστε το Αποθετήριο GitHub για λήψη των αρχείων προτύπων CloudFormation και δειγμάτων εφαρμογών πελάτη:
- Στην κονσόλα AWS CloudFormation, επιλέξτε Στοίβες στο παράθυρο πλοήγησης.
- Επιλέξτε Δημιουργία στοίβας.
- Για Προετοιμάστε το πρότυπο, Επιλέξτε Το πρότυπο είναι έτοιμο.
- Για Πηγή προτύπου, Επιλέξτε Ανεβάστε ένα αρχείο προτύπου.
- Ανεβάστε το
cfn-msk-stack-1.yaml
αρχείο απόamazon-msk-kafka-quotas/cfn-templates
κατάλογο και μετά επιλέξτε Επόμενο. - Για Όνομα στοίβας, εισαγω
MSKStack
. - Αφήστε τις παραμέτρους ως προεπιλογές και επιλέξτε Επόμενο.
- Κάντε κύλιση στο κάτω μέρος του Διαμόρφωση επιλογών στοίβας σελίδα και επιλέξτε Επόμενο για να συνεχίσετε.
- Κάντε κύλιση στο κάτω μέρος του Βαθμολογία Κριτικής σελίδα, επιλέξτε το πλαίσιο ελέγχου Αναγνωρίζω ότι το CloudFormation μπορεί να δημιουργήσει πόρους IAM, και επιλέξτε Υποβολη.
Θα χρειαστούν περίπου 30 λεπτά για να ολοκληρωθεί η στοίβα. Αφού δημιουργηθεί επιτυχώς η στοίβα, θα δημιουργηθούν οι ακόλουθοι πόροι:
- Ένα VPC με τρία ιδιωτικά υποδίκτυα και ένα δημόσιο υποδίκτυο
- Ένα σύμπλεγμα MSK με τρεις μεσίτες με ενεργοποιημένο τον έλεγχο πρόσβασης IAM
- Ένα στιγμιότυπο EC2 καλείται
MSKAdminInstance
για την τροποποίηση των ρυθμίσεων του συμπλέγματος MSK καθώς και για τη δημιουργία και την τροποποίηση πόρων AWS - EC2 περιπτώσεις για
ProducerApp-1
,ConsumerApp-1
, ναConsumerApp-2
, ένα για κάθε εφαρμογή πελάτη - Ένας ξεχωριστός ρόλος IAM για κάθε στιγμιότυπο EC2 που φιλοξενεί την εφαρμογή πελάτη, όπως φαίνεται στο διάγραμμα αρχιτεκτονικής
- Από τη στοίβα Έξοδοι καρτέλα, σημειώστε το
MSKClusterArn
αξία.
Δημιουργήστε ένα θέμα στο σύμπλεγμα MSK
Για να δημιουργήσω Topic-B
στο σύμπλεγμα MSK, ολοκληρώστε τα ακόλουθα βήματα:
- Στην κονσόλα Amazon EC2, μεταβείτε στη λίστα με τις εμφανίσεις EC2 που εκτελούνται.
- Επιλέξτε το
MSKAdminInstance
EC2 παράδειγμα και επιλέξτε Connect. - Στις Session Manager καρτέλα, επιλέξτε Connect.
- Εκτελέστε τις ακόλουθες εντολές στη νέα καρτέλα που ανοίγει στο πρόγραμμα περιήγησής σας:
- Ρυθμίστε τη μεταβλητή περιβάλλοντος ώστε να οδηγεί στο τελικό σημείο IAM του MSK Cluster brokers:
- Σημειώστε την αξία του
BOOTSTRAP_BROKERS_IAM
. - Εκτελέστε την ακόλουθη εντολή Kafka CLI για δημιουργία
Topic-B
στο σύμπλεγμα MSK:
Επειδή το σύμπλεγμα MSK είναι εφοδιασμένο με έλεγχο πρόσβασης IAM, η επιλογή --command-config
δείχνει προς config_iam.properties
, το οποίο περιέχει τις ιδιότητες που απαιτούνται για τον έλεγχο πρόσβασης IAM, που δημιουργήθηκαν από το MSKStack
Στοίβα CloudFormation.
Οι ακόλουθες προειδοποιήσεις ενδέχεται να εμφανιστούν όταν εκτελείτε τις εντολές Kafka CLI, αλλά μπορεί να τις αγνοήσετε:
- Για να το επιβεβαιώσετε
Topic-B
έχει δημιουργηθεί, αναφέρετε όλα τα θέματα:
Δημιουργήστε ρόλους IAM για εφαρμογές πελάτη για πρόσβαση στο Θέμα-Β
Αυτό το βήμα περιλαμβάνει τη δημιουργία Topic-B-Write-Role
και Topic-B-Read-Role
όπως φαίνεται στο διάγραμμα αρχιτεκτονικής. Topic-B-Write-Role
επιτρέπει τις λειτουργίες εγγραφής Topic-B
, και μπορεί να υποτεθεί από το ProducerApp-1
. Με παρόμοιο τρόπο, το ConsumerApp-1
και ConsumerApp-2
μπορεί να υποθέσει Topic-B-Read-Role
για να εκτελέσετε λειτουργίες ανάγνωσης σε Topic-B
. Για να εκτελέσετε λειτουργίες ανάγνωσης στο Topic-B
, ConsumerApp-1
και ConsumerApp-2
πρέπει επίσης να ανήκουν στις ομάδες καταναλωτών που καθορίζονται κατά την MSKStack
ενημέρωση στοίβας στο επόμενο βήμα.
Δημιουργήστε τους ρόλους με τα παρακάτω βήματα:
- Στην κονσόλα AWS CloudFormation, επιλέξτε Στοίβες στο παράθυρο πλοήγησης.
- Αγορά
MSKStack
Και επιλέξτε Ενημέρωση. - Για Προετοιμάστε το πρότυπο, επιλέξτε Αντικατάσταση τρέχοντος προτύπου.
- Για Πηγή προτύπου, Επιλέξτε Ανεβάστε ένα αρχείο προτύπου.
- Ανεβάστε το
cfn-msk-stack-2.yaml
αρχείο απόamazon-msk-kafka-quotas/cfn-templates
κατάλογο και μετά επιλέξτε Επόμενο. - Παρέχετε τις ακόλουθες πρόσθετες παραμέτρους στοίβας:
-
- Για Θέμα Β ARN, εισάγετε το
Topic-B
RNA.
- Για Θέμα Β ARN, εισάγετε το
Το ARN πρέπει να μορφοποιηθεί ως arn:aws:kafka:region:account-id:topic/msk-cluster-name/msk-cluster-uuid/Topic-B
. Χρησιμοποιήστε το όνομα του συμπλέγματος και το UUID του συμπλέγματος από το ARN του συμπλέγματος MSK που σημειώσατε νωρίτερα και παρέχετε την περιοχή AWS σας. Για περισσότερες πληροφορίες, ανατρέξτε στο Έλεγχος πρόσβασης IAM για το Amazon MSK.
-
- Για Όνομα ομάδας καταναλωτών ConsumerApp-1, εισαγω
ConsumerApp-1
ομάδα καταναλωτών ARN.
- Για Όνομα ομάδας καταναλωτών ConsumerApp-1, εισαγω
Πρέπει να μορφοποιηθεί ως arn:aws:kafka:region:account-id:group/msk-cluster-name/msk-cluster-uuid/consumer-group-name
-
- Για Όνομα ομάδας καταναλωτών ConsumerApp-2, εισαγω
ConsumerApp-2
ομάδα καταναλωτών ARN.
- Για Όνομα ομάδας καταναλωτών ConsumerApp-2, εισαγω
Χρησιμοποιήστε παρόμοια μορφή με το προηγούμενο ARN.
- Επιλέξτε Επόμενο για να συνεχίσετε.
- Κάντε κύλιση στο κάτω μέρος του Διαμόρφωση στοίβας σελίδα επιλογών και επιλέξτε Επόμενο για να συνεχίσετε.
- Κάντε κύλιση στο κάτω μέρος του Βαθμολογία Κριτικής σελίδα, επιλέξτε το πλαίσιο ελέγχου Αναγνωρίζω ότι το CloudFormation μπορεί να δημιουργήσει πόρους IAM, και επιλέξτε Ενημέρωση στοίβας.
Θα χρειαστούν περίπου 3 λεπτά για να ενημερωθεί η στοίβα. Μετά την επιτυχή ενημέρωση της στοίβας, θα δημιουργηθούν οι ακόλουθοι πόροι:
- Θέμα-Β-Γράψιμο-Ρόλος – Ένας ρόλος IAM με άδεια εκτέλεσης λειτουργιών εγγραφής
Topic-B
. Η πολιτική εμπιστοσύνης του επιτρέπει τηνProducerApp-1-Role
ρόλο IAM να το αναλάβει. - Θέμα-Β-Διαβάστε-Ρόλος – Ένας ρόλος IAM με άδεια εκτέλεσης λειτουργιών ανάγνωσης
Topic-B
. Η πολιτική εμπιστοσύνης του επιτρέπει τηνConsumerApp-1-Role
καιConsumerApp-2-Role
ρόλους του IAM για να το αναλάβει. Επί πλέον,ConsumerApp-1
καιConsumerApp-2
πρέπει επίσης να ανήκει στις ομάδες καταναλωτών που καθορίσατε κατά την ενημέρωση της στοίβας για την εκτέλεση λειτουργιών ανάγνωσηςTopic-B
.
- Από τη στοίβα Έξοδοι καρτέλα, σημειώστε το
TopicBReadRoleARN
καιTopicBWriteRoleARN
αξιών.
Εκτελέστε τις εφαρμογές παραγωγού και καταναλωτή χωρίς να ορίσετε ποσοστώσεις
Εδώ, τρέχουμε ProducerApp-1
, ConsumerApp-1
, να ConsumerApp-2
χωρίς να ορίσουν τις ποσοστώσεις τους. Από τα προηγούμενα βήματα, θα χρειαστείτε BOOTSTRAP_BROKERS_IAM
αξία, Topic-B-Write-Role
ARN, και Topic-B-Read-Role
ARN. Ο πηγαίος κώδικας των εφαρμογών πελάτη και οι συσκευασμένες εκδόσεις τους είναι διαθέσιμοι στο Αποθετήριο GitHub.
Εκτελέστε την εφαρμογή ConsumerApp-1
Για να εκτελέσετε το ConsumerApp-1
αίτηση, ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα Amazon EC2, επιλέξτε το
ConsumerApp-1
EC2 παράδειγμα και επιλέξτε Connect. - Στις Session Manager καρτέλα, επιλέξτε Connect.
- Εκτελέστε τις ακόλουθες εντολές στη νέα καρτέλα που ανοίγει στο πρόγραμμα περιήγησής σας:
- Εκτελέστε το
ConsumerApp-1
εφαρμογή για να ξεκινήσει η κατανάλωση μηνυμάτων απόTopic-B
:
Μπορείτε να βρείτε το πρωτογενής κώδικας στο GitHub για την αναφορά σας. Οι λεπτομέρειες της παραμέτρου της γραμμής εντολών είναι οι εξής:
- –bootstrap-servers – MSK cluster bootstrap brokers IAM endpoint.
- –αναλαμβάνω-ρόλος-αρν -
Topic-B-Read-Role
ρόλος IAM ARN. Αναλαμβάνοντας αυτόν τον ρόλο,ConsumerApp-1
θα διαβάσει μηνύματα από το θέμα. - -περιοχή – Περιοχή που χρησιμοποιείτε.
- -θέμα-όνομα – Όνομα θέματος από το οποίο
ConsumerApp-1
θα διαβάσει μηνύματα. Η προεπιλογή είναιTopic-B
. - – ομάδα καταναλωτών – Όνομα ομάδας καταναλωτών για
ConsumerApp-1
, όπως καθορίστηκε κατά την ενημέρωση της στοίβας. - –ρόλος-συνεδρία-όνομα -
ConsumerApp-1
υποθέτει τοTopic-B-Read-Role
χρησιμοποιώντας τα Υπηρεσία διακριτικών ασφαλείας AWS (AWS STS) SDK.ConsumerApp-1
θα χρησιμοποιήσει αυτό το όνομα συνεδρίας ρόλου όταν καλεί τοassumeRole
λειτουργία. - -ταυτότητα πελάτη – Αναγνωριστικό πελάτη για
ConsumerApp-1
. - –μετρήσεις εκτύπωσης-καταναλωτή – Σημαία που υποδεικνύει εάν οι μετρήσεις πελάτη θα πρέπει να εκτυπωθούν στο τερματικό από
ConsumerApp-1
. - –cw-dimension-name - amazoncloudwatch όνομα ιδιότητας που θα χρησιμοποιηθεί για τη δημοσίευση μετρήσεων περιορισμού πελατών από
ConsumerApp-1
. - –cw-διάσταση-τιμή – Τιμή ιδιότητας CloudWatch που θα χρησιμοποιηθεί για τη δημοσίευση μετρήσεων περιορισμού πελατών από
ConsumerApp-1
. - –cw-namespace – Χώρος ονομάτων όπου
ConsumerApp-1
θα δημοσιεύσει μετρήσεις CloudWatch για την παρακολούθηση του στραγγαλισμού.
- Εάν είστε ικανοποιημένοι με τις υπόλοιπες παραμέτρους, χρησιμοποιήστε την ακόλουθη εντολή και αλλάξτε
--assume-role-arn
και--region
σύμφωνα με το περιβάλλον σας:
Η fetch-throttle-time-avg
και fetch-throttle-time-max
Οι μετρήσεις πελάτη θα πρέπει να εμφανίζουν 0.0, υποδεικνύοντας ότι δεν υπάρχει περιορισμός ConsumerApp-1
. Να θυμάστε ότι δεν έχουμε ορίσει το όριο κατανάλωσης για ConsumerApp-1
Ακόμη. Αφήστε το να τρέξει για λίγο.
Εκτελέστε την εφαρμογή ConsumerApp-2
Για να εκτελέσετε το ConsumerApp-2
αίτηση, ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα Amazon EC2, επιλέξτε το
ConsumerApp-2
EC2 παράδειγμα και επιλέξτε Connect. - Στις Session Manager καρτέλα, επιλέξτε Connect.
- Εκτελέστε τις ακόλουθες εντολές στη νέα καρτέλα που ανοίγει στο πρόγραμμα περιήγησής σας:
- Εκτελέστε το
ConsumerApp-2
εφαρμογή για να ξεκινήσει η κατανάλωση μηνυμάτων απόTopic-B
:
Ο κώδικας έχει παρόμοιες λεπτομέρειες παραμέτρων γραμμής εντολών όπως ConsumerApp-1
συζητήθηκαν προηγουμένως, εκτός από τα ακόλουθα:
- – ομάδα καταναλωτών – Όνομα ομάδας καταναλωτών για
ConsumerApp-2
, όπως καθορίστηκε κατά την ενημέρωση της στοίβας. - –ρόλος-συνεδρία-όνομα -
ConsumerApp-2
υποθέτει τοTopic-B-Read-Role
χρησιμοποιώντας το AWS STS SDK.ConsumerApp-2
θα χρησιμοποιήσει αυτό το όνομα συνεδρίας ρόλου όταν καλεί τοassumeRole
λειτουργία. - -ταυτότητα πελάτη – Αναγνωριστικό πελάτη για
ConsumerApp-2
.
- Εάν είστε ικανοποιημένοι με τις υπόλοιπες παραμέτρους, χρησιμοποιήστε την ακόλουθη εντολή και αλλάξτε
--assume-role-arn
και--region
σύμφωνα με το περιβάλλον σας:
Η fetch-throttle-time-avg
και fetch-throttle-time-max
Οι μετρήσεις πελάτη θα πρέπει να εμφανίζουν 0.0, υποδεικνύοντας ότι δεν υπάρχει περιορισμός ConsumerApp-2
. Να θυμάστε ότι δεν έχουμε ορίσει το όριο κατανάλωσης για ConsumerApp-2
Ακόμη. Αφήστε το να τρέξει για λίγο.
Εκτελέστε την εφαρμογή ProducerApp-1
Για να εκτελέσετε το ProducerApp-1
αίτηση, ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα Amazon EC2, επιλέξτε το
ProducerApp-1
EC2 παράδειγμα και επιλέξτε Connect. - Στις Session Manager καρτέλα, επιλέξτε Connect.
- Εκτελέστε τις ακόλουθες εντολές στη νέα καρτέλα που ανοίγει στο πρόγραμμα περιήγησής σας:
- Εκτελέστε το
ProducerApp-1
εφαρμογή για να ξεκινήσει η αποστολή μηνυμάτωνTopic-B
:
Μπορείτε να βρείτε το πρωτογενής κώδικας στο GitHub για την αναφορά σας. Οι λεπτομέρειες της παραμέτρου της γραμμής εντολών είναι οι εξής:
- –bootstrap-servers – MSK cluster bootstrap brokers IAM endpoint.
- –αναλαμβάνω-ρόλος-αρν -
Topic-B-Write-Role
ρόλος IAM ARN. Αναλαμβάνοντας αυτόν τον ρόλο,ProducerApp-1
θα γράψει μηνύματα στο θέμα. - -θέμα-όνομα -
ProducerApp-1
θα στείλει μηνύματα σε αυτό το θέμα. Η προεπιλογή είναιTopic-B
. - -περιοχή – Περιοχή AWS που χρησιμοποιείτε.
- –αριθμός-μηνύματα – Αριθμός μηνυμάτων το
ProducerApp-1
η εφαρμογή θα σταλεί στο θέμα. - –ρόλος-συνεδρία-όνομα -
ProducerApp-1
υποθέτει τοTopic-B-Write-Role
χρησιμοποιώντας το AWS STS SDK.ProducerApp-1
θα χρησιμοποιήσει αυτό το όνομα συνεδρίας ρόλου όταν καλεί τοassumeRole
λειτουργία. - -ταυτότητα πελάτη – Αναγνωριστικό πελάτη του
ProducerApp-1
. - -τύπος παραγωγού -
ProducerApp-1
μπορεί να τρέξει είτε συγχρόνως or ασύγχρονα. Οι επιλογές είναι συγχρονισμό or Async. - –εκτύπωση-παραγωγός-ποσοστώσεις-μετρήσεις – Επισήμανση που υποδεικνύει εάν οι μετρήσεις πελάτη πρέπει να εκτυπωθούν στο τερματικό από ProducerApp-1.
- –cw-dimension-name – Όνομα ιδιότητας CloudWatch που θα χρησιμοποιηθεί για τη δημοσίευση μετρήσεων περιορισμού πελατών από ProducerApp-1.
- –cw-διάσταση-τιμή – Τιμή ιδιότητας CloudWatch που θα χρησιμοποιηθεί για τη δημοσίευση μετρήσεων περιορισμού πελατών από ProducerApp-1.
- –cw-namespace – Ο χώρος ονομάτων όπου ProducerApp-1 θα δημοσιεύσει μετρήσεις CloudWatch για την παρακολούθηση του στραγγαλισμού.
- Εάν είστε ικανοποιημένοι με τις υπόλοιπες παραμέτρους, χρησιμοποιήστε την ακόλουθη εντολή και αλλάξτε
--assume-role-arn
και--region
σύμφωνα με το περιβάλλον σας. Για να τρέξει έναν σύγχρονο παραγωγό Kafka, χρησιμοποιεί την επιλογή--producer-type sync
:
Εναλλακτικά, χρησιμοποιήστε --producer-type async
να διευθύνει έναν ασύγχρονο παραγωγό. Για περισσότερες λεπτομέρειες, ανατρέξτε στο Ασύγχρονη αποστολή.
Η produce-throttle-time-avg
και produce-throttle-time-max
Οι μετρήσεις πελάτη θα πρέπει να εμφανίζουν 0.0, υποδεικνύοντας ότι δεν υπάρχει περιορισμός ProducerApp-1
. Να θυμάστε ότι δεν έχουμε ορίσει την ποσόστωση παραγωγής ProducerApp-1
Ακόμη. Ελεγξε εκείνο ConsumerApp-1
και ConsumerApp-2
μπορεί να καταναλώσει μηνύματα και να παρατηρήσει ότι δεν είναι γκάζι. Διακόψτε τις εφαρμογές πελάτη καταναλωτή και παραγωγού πατώντας Ctrl + C στις αντίστοιχες καρτέλες του προγράμματος περιήγησής τους.
Ορίστε ποσοστώσεις παραγωγής και κατανάλωσης για εφαρμογές πελατών
Τώρα που έχουμε εκτελέσει τις εφαρμογές παραγωγών και καταναλωτών χωρίς ποσοστώσεις, ορίζουμε τις ποσοστώσεις τους και τις επαναλαμβάνουμε.
Ανοίξτε το Διευθυντής συνεδριών τερματικό για το MSKAdminInstance
Παρουσίαση EC2 όπως περιγράφηκε προηγουμένως και εκτελέστε τις ακόλουθες εντολές για να βρείτε την προεπιλεγμένη ρύθμιση παραμέτρων ενός από τους μεσίτες στο σύμπλεγμα MSK. Τα συμπλέγματα MSK είναι εφοδιασμένα με την προεπιλεγμένη διαμόρφωση ποσοστώσεων Kafka.
Το παρακάτω στιγμιότυπο οθόνης δείχνει το Broker-1
προεπιλεγμένες τιμές για quota.consumer.default
και quota.producer.default
.
Διαμόρφωση ορίου ProducerApp-1
Αντικαταστήστε τα σύμβολα κράτησης θέσης σε όλες τις εντολές αυτής της ενότητας με τιμές που αντιστοιχούν στον λογαριασμό σας.
Σύμφωνα με το διάγραμμα αρχιτεκτονικής που συζητήθηκε προηγουμένως, ορίστε το ProducerApp-1
παράγουν όριο στα 1024 byte/δευτερόλεπτο. Για <ProducerApp-1 Client Id>
και <ProducerApp-1 Role Session>
, βεβαιωθείτε ότι χρησιμοποιείτε τις ίδιες τιμές που χρησιμοποιήσατε κατά την εκτέλεση ProducerApp-1
νωρίτερα (producerapp-1-client-id
και producerapp-1-role-session
, αντίστοιχα):
Επαληθεύστε το ProducerApp-1
παράγετε ποσόστωση χρησιμοποιώντας την ακόλουθη εντολή:
Μπορείτε να αφαιρέσετε το ProducerApp-1
παράγουν ποσόστωση χρησιμοποιώντας την ακόλουθη εντολή, αλλά μην εκτελέσετε την εντολή καθώς θα δοκιμάσουμε τις ποσοστώσεις στη συνέχεια.
Διαμόρφωση ορίου ConsumerApp-1
Αντικαταστήστε τα σύμβολα κράτησης θέσης σε όλες τις εντολές αυτής της ενότητας με τιμές που αντιστοιχούν στον λογαριασμό σας.
Ας ορίσουμε ένα όριο κατανάλωσης 5120 byte/δευτερόλεπτο για ConsumerApp-1
. Φόρουμ <ConsumerApp-1 Client Id>
και <ConsumerApp-1 Role Session>
, βεβαιωθείτε ότι χρησιμοποιείτε τις ίδιες τιμές που χρησιμοποιήσατε κατά την εκτέλεση ConsumerApp-1
νωρίτερα (consumerapp-1-client-id
και consumerapp-1-role-session
, αντίστοιχα):
kafka-configs.sh --bootstrap-server $BOOTSTRAP_BROKERS_IAM --command-config config_iam.properties --alter --add-config 'consumer_byte_rate=5120' --entity-type clients --entity-name <ConsumerApp-1 Client Id> --entity-type users --entity-name arn:aws:sts::<AWS Account Id>:assumed-role/MSKStack-TopicBReadRole-xxxxxxxxxxx/<ConsumerApp-1 Role Session>
Επαληθεύστε το ConsumerApp-1
καταναλώστε το όριο χρησιμοποιώντας την ακόλουθη εντολή:
Μπορείτε να αφαιρέσετε το ConsumerApp-1
καταναλώνουν ποσόστωση, χρησιμοποιώντας την ακόλουθη εντολή, αλλά μην εκτελέσετε την εντολή καθώς θα δοκιμάσουμε τις ποσοστώσεις στη συνέχεια.
Διαμόρφωση ορίου ConsumerApp-2
Αντικαταστήστε τα σύμβολα κράτησης θέσης σε όλες τις εντολές αυτής της ενότητας με τιμές που αντιστοιχούν στον λογαριασμό σας.
Ας ορίσουμε ένα όριο κατανάλωσης 1024 byte/δευτερόλεπτο για ConsumerApp-2
. Φόρουμ <ConsumerApp-2 Client Id>
και <ConsumerApp-2 Role Session>
, βεβαιωθείτε ότι χρησιμοποιείτε τις ίδιες τιμές που χρησιμοποιήσατε κατά την εκτέλεση ConsumerApp-2
νωρίτερα (consumerapp-2-client-id
και consumerapp-2-role-session
, αντίστοιχα):
Επαληθεύστε το ConsumerApp-2
καταναλώστε το όριο χρησιμοποιώντας την ακόλουθη εντολή:
Οπως και με ConsumerApp-1
, μπορείτε να αφαιρέσετε το ConsumerApp-2
καταναλώνουν ποσόστωση χρησιμοποιώντας την ίδια εντολή με ConsumerApp-2
στοιχεία πελάτη και χρήστη.
Εκτελέστε ξανά τις εφαρμογές παραγωγού και καταναλωτή μετά τον καθορισμό ποσοστώσεων
Ας εκτελέσουμε ξανά τις εφαρμογές για να επαληθεύσουμε την επίδραση των ποσοστώσεων.
Επανάληψη ProducerApp-1
Επανάληψη ProducerApp-1
in σύγχρονος λειτουργία με την ίδια εντολή που χρησιμοποιήσατε νωρίτερα. Το παρακάτω στιγμιότυπο οθόνης δείχνει ότι όταν ProducerApp-1
φτάνει την ποσόστωσή του σε οποιονδήποτε από τους μεσίτες, τον produce-throttle-time-avg
και produce-throttle-time-max client
Η τιμή μετρήσεων θα είναι πάνω από 0.0. Μια τιμή πάνω από 0.0 το δείχνει αυτό ProducerApp-1
στραγγαλίζεται. Επιτρέπω ProducerApp-1
να τρέξει για λίγα δευτερόλεπτα και μετά να το σταματήσει χρησιμοποιώντας Ctrl + C.
Μπορείτε επίσης να ελέγξετε την επίδραση της ποσόστωσης παραγωγής με επανάληψη ProducerApp-1
και πάλι μέσα ασύγχρονη λειτουργία (--producer-type async
). Παρόμοια με μια σύγχρονη εκτέλεση, το ακόλουθο στιγμιότυπο οθόνης δείχνει ότι όταν ProducerApp-1
φτάνει την ποσόστωσή του σε οποιονδήποτε από τους μεσίτες, τον produce-throttle-time-avg
και produce-throttle-time-max
Η τιμή των μετρήσεων πελάτη θα είναι πάνω από 0.0. Μια τιμή πάνω από 0.0 το δείχνει αυτό ProducerApp-1
στραγγαλίζεται. Να επιτρέπεται η ασύγχρονη ProducerApp-1
να τρέξω για λίγο.
Θα δείτε τελικά α TimeoutException
δηλώνοντας org.apache.kafka.common.errors.TimeoutException: Expiring xxxxx record(s) for Topic-B-2:xxxxxxx ms has passed since batch creation
Όταν χρησιμοποιείτε ένα ασύγχρονη παραγωγός και αποστολή μηνυμάτων με ρυθμό μεγαλύτερο από αυτό που μπορεί να δεχτεί ο μεσίτης λόγω του ορίου, τα μηνύματα θα μπουν στην ουρά πρώτα στη μνήμη της εφαρμογής πελάτη. Ο υπολογιστής-πελάτης θα εξαντληθεί τελικά ο χώρος αποθήκευσης εάν ο ρυθμός αποστολής μηνυμάτων συνεχίσει να υπερβαίνει τον ρυθμό αποδοχής μηνυμάτων, προκαλώντας το επόμενο Producer.send()
κλήση για αποκλεισμό. Producer.send()
θα ρίξει τελικά α TimeoutException
εάν η καθυστέρηση χρονικού ορίου δεν είναι επαρκής για να επιτρέψει στον μεσίτη να καλύψει τη διαφορά της αίτησης του παραγωγού. Να σταματήσει ProducerApp-1
χρησιμοποιώντας Ctrl + C.
Επαναλάβετε την εφαρμογή ConsumerApp-1
Επανάληψη ConsumerApp-1
με την ίδια εντολή που χρησιμοποιήσατε νωρίτερα. Το παρακάτω στιγμιότυπο οθόνης δείχνει ότι όταν ConsumerApp-1
φτάνει στην ποσόστωσή του, το fetch-throttle-time-avg
και fetch-throttle-time-max client
Η τιμή μετρήσεων θα είναι πάνω από 0.0. Μια τιμή πάνω από 0.0 το δείχνει αυτό ConsumerApp-1
στραγγαλίζεται.
Επιτρέψτε ConsumerApp-1
να τρέξει για λίγα δευτερόλεπτα και μετά να το σταματήσει χρησιμοποιώντας Ctrl + C.
Επαναλάβετε την εφαρμογή ConsumerApp-2
Επανάληψη ConsumerApp-2
με την ίδια εντολή που χρησιμοποιήσατε νωρίτερα. Ομοίως, όταν ConsumerApp-2
φτάνει στην ποσόστωσή του, το fetch-throttle-time-avg
και fetch-throttle-time-max client
η τιμή μετρήσεων θα είναι παραπάνω 0.0. Μια τιμή παραπάνω 0.0 δείχνει ότι ConsumerApp-2
στραγγαλίζεται. Επιτρέπω ConsumerApp-2
να τρέξει για λίγα δευτερόλεπτα και μετά να το σταματήσει πατώντας Ctrl + C.
Μετρήσεις ορίων πελατών στο Amazon CloudWatch
In Μέρος 1, εξηγήσαμε ότι οι μετρήσεις πελατών είναι μετρήσεις που εκτίθενται από πελάτες που συνδέονται σε συμπλέγματα Kafka. Ας εξετάσουμε τις μετρήσεις πελατών στο CloudWatch.
- Στην κονσόλα CloudWatch, επιλέξτε Όλες οι μετρήσεις.
- Κάτω από Προσαρμοσμένοι χώροι ονομάτων, επιλέξτε τον χώρο ονομάτων που παρείχατε κατά την εκτέλεση των εφαρμογών πελάτη.
- Επιλέξτε το όνομα της διάστασης και επιλέξτε
produce-throttle-time-max
,produce-throttle-time-avg
,fetch-throttle-time-max
, ναfetch-throttle-time-avg metrics
για όλες τις εφαρμογές.
Αυτές οι μετρήσεις υποδεικνύουν συμπεριφορά στραγγαλισμού για ProducerApp-1
, ConsumerApp-1
, να ConsumerApp-2
εφαρμογές που δοκιμάστηκαν με τις διαμορφώσεις ορίου στην προηγούμενη ενότητα. Τα ακόλουθα στιγμιότυπα οθόνης υποδεικνύουν το στραγγαλισμό του ProducerApp-1
, ConsumerApp-1
, να ConsumerApp-2
βάσει ποσοστώσεων εύρους ζώνης δικτύου. ProducerApp-1
, ConsumerApp-1
, να ConsumerApp-2
Οι εφαρμογές τροφοδοτούν τις αντίστοιχες μετρήσεις πελατών τους στο CloudWatch. Μπορείτε να βρείτε το πρωτογενής κώδικας στο GitHub για την αναφορά σας.
Ασφαλές αναγνωριστικό πελάτη και όνομα συνεδρίας ρόλου
Συζητήσαμε τον τρόπο διαμόρφωσης των ποσοστώσεων Kafka χρησιμοποιώντας μια εφαρμογή ταυτότητα πελάτη και επικυρώθηκε χρήστη ΔΙΕΥΘΥΝΤΡΙΑ σχολειου. Όταν μια εφαρμογή πελάτη αναλαμβάνει έναν ρόλο IAM για πρόσβαση σε θέματα Kafka σε ένα σύμπλεγμα MSK με ενεργοποιημένο τον έλεγχο ταυτότητας IAM, επαληθεύεται χρήστη ο κύριος αντιπροσωπεύεται στην ακόλουθη μορφή (για περισσότερες πληροφορίες, ανατρέξτε στο Αναγνωριστικά IAM):
arn:aws:sts::111111111111:assumed-role/Topic-B-Write-Role/producerapp-1-role-session
Περιέχει το όνομα συνεδρίας ρόλου (σε αυτήν την περίπτωση, producerapp-1-role-session
) χρησιμοποιείται στην εφαρμογή πελάτη ενώ αναλαμβάνει ρόλο IAM μέσω του AWS STS SDK. Η εφαρμογή πελάτη πρωτογενής κώδικας είναι διαθέσιμο για αναφορά σας. ο ταυτότητα πελάτη είναι μια συμβολοσειρά λογικού ονόματος (για παράδειγμα, producerapp-1-client-id
) που έχει διαμορφωθεί στον κωδικό εφαρμογής από την ομάδα εφαρμογής. Επομένως, μια εφαρμογή μπορεί να υποδυθεί μια άλλη εφαρμογή εάν λάβει το ταυτότητα πελάτη και όνομα συνεδρίας ρόλου της άλλης εφαρμογής και εάν έχει άδεια να αναλάβει τον ίδιο ρόλο IAM.
Όπως φαίνεται στο διάγραμμα αρχιτεκτονικής, ConsumerApp-1
και ConsumerApp-2
είναι δύο ξεχωριστές εφαρμογές πελατών με τις αντίστοιχες κατανομές ποσοστώσεων. Επειδή και οι δύο έχουν άδεια να αναλάβουν τον ίδιο ρόλο IAM (Topic-B-Read-Role
) στον δοκιμαστικό λογαριασμό, επιτρέπεται να καταναλώνουν μηνύματα από Topic-B
. Έτσι, οι μεσίτες συστάδων MSK τα διακρίνουν με βάση τους αναγνωριστικά πελατών και Χρήστες (τα οποία περιέχουν τα αντίστοιχα όνομα συνεδρίας ρόλου αξίες). Αν ConsumerApp-2
με κάποιο τρόπο αποκτά το ConsumerApp-1
όνομα συνεδρίας ρόλου και ταυτότητα πελάτη, μπορεί να υποδυθεί ConsumerApp-1
προσδιορίζοντας το ConsumerApp-1
όνομα συνεδρίας ρόλου και ταυτότητα πελάτη στον κωδικό της αίτησης.
Ας υποθέσουμε ConsumerApp-1
χρησιμοποιεί consumerapp-1-client-id
και consumerapp-1-role-session
ως του ταυτότητα πελάτη και όνομα συνεδρίας ρόλου, αντίστοιχα. Ως εκ τούτου, ConsumerApp-1's
επικυρωμένο χρήστη εντολέας θα εμφανίζεται ως εξής όταν αναλαμβάνει την Topic-B-Read-Role
Ρόλος IAM:
arn:aws:sts::<AWS Account Id>:assumed-role/Topic-B-Read-Role/consumerapp-1-role-session
Ομοίως, ConsumerApp-2
χρησιμοποιεί consumerapp-2-client-id
και consumerapp-2-role-session
ως του ταυτότητα πελάτη και όνομα συνεδρίας ρόλου, αντίστοιχα. Ως εκ τούτου, ConsumerApp-2's
επικυρωμένο χρήστη εντολέας θα εμφανίζεται ως εξής όταν αναλαμβάνει την Topic-B-Read-Role
Ρόλος IAM:
arn:aws:sts::<AWS Account Id>:assumed-role/Topic-B-Read-Role/consumerapp-2-role-session
If ConsumerApp-2
λαμβάνει ConsumerApp-1's
ταυτότητα πελάτη και όνομα συνεδρίας ρόλου και τα καθορίζει στον κώδικα εφαρμογής του, οι μεσίτες συμπλέγματος MSK θα το αντιμετωπίζουν ως ConsumerApp-1
και δείτε το ταυτότητα πελάτη as consumerapp-1-client-id
, και το πιστοποιημένο χρήστη κύριος ως εξής:
arn:aws:sts::<AWS Account Id>:assumed-role/Topic-B-Read-Role/consumerapp-1-role-session
Αυτό επιτρέπει ConsumerApp-2
να καταναλώνει δεδομένα από το σύμπλεγμα MSK με μέγιστο ρυθμό 5120 byte ανά δευτερόλεπτο αντί 1024 byte ανά δευτερόλεπτο σύμφωνα με την αρχική του κατανομή ορίου. Συνεπώς, ConsumerApp-1's
η διεκπεραίωση θα επηρεαστεί αρνητικά εάν ConsumerApp-2
τρέχει ταυτόχρονα.
Βελτιωμένη αρχιτεκτονική
Μπορείτε να εισαγάγετε Διευθυντής μυστικών AWS και Υπηρεσία διαχείρισης κλειδιών AWS (AWS KMS) στην αρχιτεκτονική για την ασφάλεια των εφαρμογών αναγνωριστικά πελατών και ονόματα συνεδριών ρόλων. Για να παρέχεται ισχυρότερη διακυβέρνηση, το αναγνωριστικό πελάτη και το όνομα της περιόδου σύνδεσης ρόλου των εφαρμογών πρέπει να αποθηκευτούν ως κρυπτογραφημένα μυστικά στο Secrets Manager. Οι πολιτικές πόρων IAM που σχετίζονται με κρυπτογραφημένα μυστικά και ένα κλειδί διαχείρισης πελατών KMS (CMK) θα επιτρέπουν στις εφαρμογές να έχουν πρόσβαση και να αποκρυπτογραφούν μόνο το αντίστοιχο αναγνωριστικό πελάτη και το όνομα περιόδου λειτουργίας ρόλου. Με αυτόν τον τρόπο, οι εφαρμογές δεν θα μπορούν να έχουν πρόσβαση η μία στο αναγνωριστικό πελάτη και το όνομα της περιόδου σύνδεσης ρόλου και να πλαστοπροσωπούν η μία την άλλη. Η παρακάτω εικόνα δείχνει τη βελτιωμένη αρχιτεκτονική.
Η ενημερωμένη ροή έχει τα ακόλουθα στάδια:
- P1 -
ProducerApp-1
το ανακτάclient-id
καιrole-session-name
μυστικά από το Secrets Manager - P2 -
ProducerApp-1
διαμορφώνει το μυστικόclient-id
asCLIENT_ID_CONFIG
στον κωδικό της εφαρμογής, και υποθέτειTopic-B-Write-Role
(μέσω τουProducerApp-1-Role
ρόλος ΙΑΜ) περνώντας το μυστικόrole-session-name
στο AWS STS SDKassumeRole
κλήση λειτουργίας - P3 - Με το
Topic-B-Write-Role
Ο ρόλος του IAM αναλαμβάνεται,ProducerApp-1
αρχίζει να στέλνει μηνύματα σεTopic-B
- C1 -
ConsumerApp-1
καιConsumerApp-2
ανακτήσουν τα αντίστοιχαclient-id
καιrole-session-name
μυστικά από το Secrets Manager - C2 -
ConsumerApp-1
καιConsumerApp-2
να ρυθμίσουν το αντίστοιχο μυστικό τουςclient-id
asCLIENT_ID_CONFIG
στον κωδικό της αίτησής τους και να υποθέσουμεTopic-B-Write-Role
(μέσωConsumerApp-1-Role
καιConsumerApp-2-Role
ρόλοι ΙΑΜ, αντίστοιχα) περνώντας το μυστικό τουςrole-session-name
στο AWS STS SDKassumeRole
κλήση λειτουργίας - C3 - Με το
Topic-B-Read-Role
Ο ρόλος του IAM αναλαμβάνεται,ConsumerApp-1
καιConsumerApp-2
αρχίστε να καταναλώνετε μηνύματα απόTopic-B
Ανατρέξτε στην τεκμηρίωση για Διευθυντής μυστικών AWS και AWS KMS για να κατανοήσουν καλύτερα πώς ταιριάζουν στην αρχιτεκτονική.
Εκκαθάριση πόρων
Μεταβείτε στην κονσόλα CloudFormation και διαγράψτε το MSKStack
σωρός. Όλοι οι πόροι που δημιουργήθηκαν κατά τη διάρκεια αυτής της ανάρτησης θα διαγραφούν.
Συμπέρασμα
Σε αυτήν την ανάρτηση, καλύψαμε λεπτομερή βήματα για τη διαμόρφωση των ποσοστώσεων Amazon MSK και δείξαμε την επίδρασή τους μέσω δειγμάτων εφαρμογών πελατών. Επιπλέον, συζητήσαμε πώς μπορείτε να χρησιμοποιήσετε τις μετρήσεις πελάτη για να προσδιορίσετε εάν μια εφαρμογή πελάτη έχει περιοριστεί. Επισημάναμε επίσης ένα πιθανό πρόβλημα με τα αναγνωριστικά πελάτη απλού κειμένου και τα ονόματα περιόδων σύνδεσης ρόλων. Συνιστούμε την εφαρμογή ποσοστώσεων Kafka με το Amazon MSK χρησιμοποιώντας το Secrets Manager και το AWS KMS σύμφωνα με το αναθεωρημένο διάγραμμα αρχιτεκτονικής για να διασφαλιστεί μια αρχιτεκτονική μηδενικής εμπιστοσύνης.
Εάν έχετε σχόλια ή ερωτήσεις σχετικά με αυτήν την ανάρτηση, συμπεριλαμβανομένης της αναθεωρημένης αρχιτεκτονικής, θα χαρούμε να σας ακούσουμε. Ελπίζουμε να σας άρεσε η ανάγνωση αυτής της ανάρτησης.
Σχετικά με το Συγγραφέας
Vikas Bajaj είναι Senior Manager, Solutions Architects, Financial Services στην Amazon Web Services. Με πάνω από δύο δεκαετίες εμπειρίας στις χρηματοοικονομικές υπηρεσίες και τη συνεργασία με ψηφιακές εγγενείς επιχειρήσεις, συμβουλεύει τους πελάτες σχετικά με το σχεδιασμό προϊόντων, τους τεχνολογικούς χάρτες πορείας και τις αρχιτεκτονικές εφαρμογών.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- EVM Finance. Ενιαία διεπαφή για αποκεντρωμένη χρηματοδότηση. Πρόσβαση εδώ.
- Quantum Media Group. Ενισχυμένο IR/PR. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Data Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/big-data/multi-tenancy-apache-kafka-clusters-in-amazon-msk-with-iam-access-control-and-kafka-quotas-part-2/
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 1
- 10
- 11
- 30
- 7
- 70
- 8
- 9
- a
- Ικανός
- Σχετικα
- πάνω από
- Αποδέχομαι
- την αποδοχή
- πρόσβαση
- Λογαριασμός
- αναγνωρίζω
- απέναντι
- προσθέτω
- Επιπλέον
- Πρόσθετος
- Επιπλέον
- Μετά το
- πάλι
- Όλα
- κατανομή
- κατανομών
- επιτρέπουν
- επιτρέπει
- Επίσης
- Amazon
- Amazon EC2
- Amazon υπηρεσίες Web
- an
- και
- Άλλος
- κάθε
- Apache
- Apache Kafka
- εμφανίζομαι
- Εφαρμογή
- εφαρμογές
- περίπου
- αρχιτεκτονική
- ΕΙΝΑΙ
- AS
- συσχετισμένη
- υποτίθεται
- At
- επικυρωμένο
- Πιστοποίηση
- διαθέσιμος
- AWS
- AWS CloudFormation
- εύρος ζώνης
- βασίζονται
- BE
- επειδή
- ήταν
- πριν
- είναι
- Καλύτερα
- μπλοκαριστεί
- Bootstrap
- και οι δύο
- Κάτω μέρος
- Κουτί
- μεσίτης
- μεσίτες
- πρόγραμμα περιήγησης
- ρυθμιστικό
- επιχείρηση
- επιχειρήσεις
- αλλά
- by
- κλήση
- που ονομάζεται
- κλήση
- CAN
- περίπτωση
- CAT
- πάλη
- προκαλώντας
- CD
- κεντρικός
- αλλαγή
- Αλλαγές
- έλεγχος
- Επιλέξτε
- τάξη
- πελάτης
- πελάτες
- συστάδα
- κωδικός
- Κοινός
- πλήρης
- Υπολογίστε
- έννοιες
- διαμόρφωση
- έχει ρυθμιστεί
- Συνδετικός
- συνεπώς
- πρόξενος
- καταναλώνουν
- καταναλωτής
- Περιέχει
- ΣΥΝΕΧΕΙΑ
- συνεχίζεται
- συνεχίζοντας
- έλεγχος
- καλύπτονται
- δημιουργία
- δημιουργήθηκε
- δημιουργία
- Ρεύμα
- πελάτης
- Πελάτες
- ημερομηνία
- Πλατφόρμα δεδομένων
- δεκαετίες
- Αποκρυπτογράφηση
- Προεπιλογή
- delay
- Διαδήλωση
- κατέδειξε
- Σε συνάρτηση
- περιγράφουν
- περιγράφεται
- Υπηρεσίες
- λεπτομερής
- καθέκαστα
- Προσδιορίστε
- καθορίζει
- Διάσταση
- συζήτηση
- Display
- διακρίνω
- τεκμηρίωση
- κατεβάσετε
- δυο
- κατά την διάρκεια
- κάθε
- Νωρίτερα
- ηχώ
- αποτέλεσμα
- είτε
- ενεργοποιήσετε
- ενεργοποιημένη
- δίνει τη δυνατότητα
- κρυπτογραφημένα
- Τελικό σημείο
- επιβάλλω
- ενισχυμένη
- εξασφαλίζω
- εισάγετε
- Περιβάλλον
- λάθη
- Αιθέρας (ΕΤΗ)
- τελικά
- εξετάζω
- παράδειγμα
- υπερβαίνω
- Εκτός
- εμπειρία
- εξήγησε
- εξήγηση
- εξαγωγή
- εκτεθειμένος
- ανατροφοδότηση
- λίγοι
- Εικόνα
- Αρχεία
- Αρχεία
- οικονομικός
- των χρηματοπιστωτικών υπηρεσιών
- Εύρεση
- Όνομα
- ταιριάζουν
- ροή
- Εξής
- εξής
- Για
- μορφή
- τέσσερα
- από
- λειτουργία
- Επί πλέον
- παίρνω
- Git
- GitHub
- διακυβέρνησης
- μεγαλύτερη
- Group
- Ομάδα
- ευτυχισμένος
- Έχω
- he
- ακούω
- υψηλού επιπέδου
- Τόνισε
- ελπίζω
- οικοδεσπότης
- οικοδεσπότες
- Πως
- Πώς να
- HTML
- http
- HTTPS
- IAM
- ID
- Ταυτότητα
- ids
- if
- απεικονίζει
- εικόνα
- επηρεάζονται
- εκτέλεση
- εκτελεστικών
- in
- Συμπεριλαμβανομένου
- υποδεικνύω
- υποδηλώνει
- υποδεικνύοντας
- ατομικές
- πληροφορίες
- παράδειγμα
- ολοκλήρωμα
- σε
- εισαγάγει
- εισήγαγε
- isn
- ζήτημα
- IT
- ΤΟΥ
- Java
- jpg
- Kafka
- Κλειδί
- γνωστός
- LIMIT
- γραμμή
- γραμμές
- Λιστα
- λογικός
- κάνω
- διαχειρίζεται
- διαχείριση
- διευθυντής
- ανώτατο όριο
- Ενδέχεται..
- μετράται
- Μνήμη
- μηνύματα
- Metrics
- πρακτικά
- Τρόπος
- τροποποιήσει
- Παρακολούθηση
- περισσότερο
- MS
- πολύ
- πολλαπλούς
- πρέπει
- όνομα
- ονόματα
- Πλοηγηθείτε
- Πλοήγηση
- Ανάγκη
- αρνητικά
- δίκτυο
- Νέα
- επόμενη
- Όχι.
- Σημειώνεται
- Ειδοποίηση..
- αριθμός
- λαμβάνει
- που συμβαίνουν
- of
- on
- ONE
- αποκλειστικά
- ανοίγει
- λειτουργεί
- λειτουργίες
- Επιλογή
- Επιλογές
- or
- τάξη
- πρωτότυπο
- ΑΛΛΑ
- έξω
- επί
- συσκευάζονται
- σελίδα
- παράθυρο
- παράμετρος
- παράμετροι
- μέρος
- πέρασε
- Πέρασμα
- μονοπάτι
- ποσοστό
- εκτελέσει
- επίδοση
- άδεια
- Απλό κείμενο
- πλατφόρμες
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- Σημείο
- σημεία
- Πολιτικές
- πολιτική
- Θέση
- δυναμικού
- πιέζοντας
- πρόληψη
- προηγούμενος
- προηγουμένως
- Κύριος
- ιδιωτικός
- μεταποίηση
- παράγει
- παραγωγός
- Προϊόν
- το σχεδιασμό του προϊόντος
- ιδιότητες
- παρέχουν
- παρέχεται
- δημόσιο
- δημοσιεύει
- Ερωτήσεις
- Τιμή
- μάλλον
- Φτάνει
- Διάβασε
- Ανάγνωση
- συνιστώ
- συνιστάται
- αναφέρεται
- περιοχή
- θυμάμαι
- αφαιρέστε
- αντικαθιστώ
- Αποθήκη
- εκπροσωπούνται
- ζητήσει
- αιτήματα
- απαιτείται
- πόρος
- Υποστηρικτικό υλικό
- εκείνοι
- αντίστοιχα
- ΠΕΡΙΦΕΡΕΙΑ
- οδικούς χάρτες
- Ρόλος
- ρόλους
- τρέξιμο
- τρέξιμο
- s
- ίδιο
- ικανοποιημένοι
- ικανοποιημένος με
- screenshots
- SDK
- Δεύτερος
- δευτερόλεπτα
- Μυστικό
- Τμήμα
- προστατευμένο περιβάλλον
- ασφάλεια
- σημείωμα ασφαλείας
- δείτε
- στείλετε
- αποστολή
- αρχαιότερος
- ξεχωριστό
- Σειρές
- Υπηρεσίες
- Συνεδρίαση
- σειρά
- τον καθορισμό
- ρυθμίσεις
- θα πρέπει να
- παρουσιάζεται
- Δείχνει
- παρόμοιες
- Ομοίως
- αφού
- Λύσεις
- Πηγή
- πρωτογενής κώδικας
- Χώρος
- συγκεκριμένες
- καθορίζεται
- σωρός
- στάδια
- Εκκίνηση
- ξεκίνησε
- Βήμα
- Βήματα
- στάση
- αποθηκεύονται
- ροής
- Σπάγγος
- ισχυρότερη
- υποδίκτυα
- μεταγενέστερος
- Επιτυχώς
- τέτοιος
- επαρκής
- παρέχεται
- Υποστηρίζει
- Πάρτε
- Τεχνολογία
- πρότυπο
- πρότυπα
- τερματικό
- δοκιμή
- δοκιμαστεί
- Δοκιμές
- από
- ότι
- Η
- Η Πηγη
- τους
- Τους
- τότε
- επομένως
- αυτοί
- αυτό
- τρία
- Μέσω
- διακίνηση
- ώρα
- προς την
- ένδειξη
- τοπικός
- Θέματα
- θεραπεία
- Εμπιστευθείτε
- δύο
- τύπος
- τύποι
- κατανόηση
- Ενημέρωση
- ενημερώθηκε
- ενημέρωση
- χρήση
- μεταχειρισμένος
- Χρήστες
- Χρήστες
- χρησιμοποιεί
- χρησιμοποιώντας
- αξία
- Αξίες
- επαληθεύει
- μέσω
- Δες
- ήταν
- Τρόπος..
- we
- ιστός
- διαδικτυακές υπηρεσίες
- ΛΟΙΠΌΝ
- πότε
- αν
- Ποιό
- ενώ
- θα
- με
- χωρίς
- εργαζόμενος
- γράφω
- ακόμη
- εσείς
- Σας
- zephyrnet