portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
Τεχνολογία

Επικοινωνία μικροσυστήματος: Ένα εκπαιδευτικό άνοιγμα για την άνοιξη με τον Redis



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

Η επικοινωνία μεταξύ αυτών των μικροϋπηρεσιών είναι σημαντική προκειμένου να υπάρχει ένα σταθερό και επεκτάσιμο σύστημα. Υπάρχουν πολλοί τρόποι για να το κάνετε αυτό. Η επικοινωνία βάσει μηνύματος είναι ένας τρόπος να το κάνετε αξιόπιστα.



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



γραφική αναπαράσταση ενός συστήματος ανταλλαγής μηνυμάτων που διευκολύνει την επικοινωνία μεταξύ της υπηρεσίας Α και της υπηρεσίας Β



Όταν η Υπηρεσία Α θέλει να επικοινωνήσει με την Υπηρεσία Β, αντί να την στείλει απευθείας, η Α την στέλνει σε ένα συγκεκριμένο κανάλι. Όταν η Υπηρεσία Β θέλει να διαβάσει το μήνυμα, παραλαμβάνει το μήνυμα από ένα συγκεκριμένο κανάλι μηνυμάτων.

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



Ανοιξιάτικη ολοκλήρωση

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

Το Spring Integration παρέχει μια ευρεία επιλογή μηχανισμών για επικοινωνία με εξωτερικά συστήματα. Οι προσαρμογείς καναλιών είναι ένας τέτοιος μηχανισμός που χρησιμοποιείται για μονόδρομη ολοκλήρωση (αποστολή ή λήψη). Και οι πύλες χρησιμοποιούνται για σενάρια αιτήσεων / απαντήσεων (εισερχόμενα ή εξερχόμενα).



Το Apache Camel είναι μια εναλλακτική λύση που χρησιμοποιείται ευρέως. Η ανοιξιάτικη ολοκλήρωση προτιμάται συνήθως στις υπάρχουσες υπηρεσίες που βασίζονται στην άνοιξη, καθώς αποτελεί μέρος του εαρινού οικοσυστήματος.

Redis

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



tdd και bdd σε ευκίνητο

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

Πολλοί καταναλωτές δεν μπορούν να καταναλώσουν το ίδιο συμβάν - αυτό διασφαλίζει την επεξεργασία ενός συμβάντος μία φορά.



διάγραμμα που δείχνει την αρχιτεκτονική παραγωγού / καταναλωτή

Οφέλη από τη χρήση του Redis ως ουρά μηνυμάτων:



  • Παράλληλη εκτέλεση διακριτών εργασιών χωρίς αποκλεισμό
  • Υπέροχη παράσταση
  • Σταθερότητα
  • Εύκολη παρακολούθηση και εντοπισμός σφαλμάτων
  • Εύκολη εφαρμογή και χρήση

Κανόνες:

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

Άνοιξη Ενσωμάτωση με το Redis

Τα παρακάτω περιγράφουν τη δημιουργία ενός δείγματος εφαρμογής για να εξηγήσουν πώς να χρησιμοποιήσετε το Spring Integration με το Redis.

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

Ένας τρόπος για να το εφαρμόσετε είναι να στείλετε ένα email σε κάθε ακόλουθο όταν ο χρήστης δημοσιεύσει κάτι. Τι συμβαίνει όμως όταν ο χρήστης έχει 1.000 ακόλουθους; Και όταν 1.000 χρήστες δημοσιεύουν κάτι σε 10 δευτερόλεπτα, καθένας από τους οποίους έχει 1.000 ακόλουθους; Επίσης, θα περιμένει η ανάρτηση του εκδότη έως ότου αποσταλούν όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου;

Τα κατανεμημένα συστήματα επιλύουν αυτό το πρόβλημα.

ποιοι είναι οι διαφορετικοί τύποι llc

Αυτό το συγκεκριμένο πρόβλημα θα μπορούσε να επιλυθεί χρησιμοποιώντας μια ουρά. Η υπηρεσία Α (ο παραγωγός), η οποία είναι υπεύθυνη για τη δημοσίευση δημοσιεύσεων, θα το κάνει ακριβώς. Θα δημοσιεύσει μια ανάρτηση και θα προωθήσει ένα συμβάν με τη λίστα των χρηστών που πρέπει να λάβουν ένα email και την ίδια την ανάρτηση. Η λίστα χρηστών θα μπορούσε να ανακτηθεί στην υπηρεσία B, αλλά για απλότητα αυτού του παραδείγματος, θα την στείλουμε από την υπηρεσία A.

Αυτή είναι μια ασύγχρονη λειτουργία. Αυτό σημαίνει ότι η υπηρεσία που δημοσιεύει δεν θα πρέπει να περιμένει να στείλει email.

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

Ας ξεκινήσουμε λοιπόν με μια εφαρμογή στην υπηρεσία του παραγωγού. Οι απαραίτητες εξαρτήσεις είναι:

redis.clients jedis org.springframework.data spring-data-redis org.springframework.integration spring-integration-redis

Αυτές οι τρεις εξαρτήσεις Maven είναι απαραίτητες:

  • Ο Jedis είναι πελάτης της Redis.
  • Η εξάρτηση Spring Data Redis διευκολύνει τη χρήση του Redis στην Java. Παρέχει οικείες έννοιες Spring, όπως μια κλάση προτύπων για βασική χρήση API και ελαφριά πρόσβαση σε δεδομένα χώρου αποθήκευσης.
  • Το Spring Integration Redis παρέχει μια επέκταση του μοντέλου Spring για να υποστηρίξει το γνωστό Σχέδια ενοποίησης επιχειρήσεων .

Στη συνέχεια, πρέπει να ρυθμίσουμε τον πελάτη Jedis:

@Configuration public class RedisConfig { @Value('${redis.host}') private String redisHost; @Value('${redis.port:6379}') private int redisPort; @Bean public JedisPoolConfig poolConfig() { JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(128); return poolConfig; } @Bean public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) { final JedisConnectionFactory connectionFactory = new JedisConnectionFactory(); connectionFactory.setHostName(redisHost); connectionFactory.setPort(redisPort); connectionFactory.setPoolConfig(poolConfig); connectionFactory.setUsePool(true); return connectionFactory; } }

Ο σχολιασμός @Value σημαίνει ότι το Spring θα εισαγάγει την τιμή που ορίζεται στις ιδιότητες εφαρμογής στο πεδίο. Αυτό σημαίνει redis.host και redis.port Οι τιμές πρέπει να καθοριστούν στις ιδιότητες της εφαρμογής.

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

@Getter @Setter @Builder public class PostPublishedEvent { private String postUrl; private String postTitle; private List emails; }

Σημείωση: Project Lombok ( https://projectlombok.org/ ) παρέχει το @Getter, @Setter, @Builder, και πολλούς άλλους σχολιασμούς για να αποφευχθεί η ακαταστασία του κώδικα με τους λήπτες, τους ρυθμιστές και άλλα ασήμαντα πράγματα. Μπορείτε να μάθετε περισσότερα για αυτό αυτό το άρθρο ApeeScape .

Προγραμματισμός c++ για αρχάριους

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

Με το μήνυμα που ορίζεται, πρέπει να ορίσουμε την ίδια την ουρά. Στην Άνοιξη της Ενσωμάτωσης, μπορεί να γίνει εύκολα μέσω ενός .xml διαμόρφωση. Η διαμόρφωση πρέπει να τοποθετηθεί μέσα στο resources/WEB-INF Ευρετήριο.

MessageChannel

Στη διαμόρφωση, μπορείτε να δείτε το μέρος 'int-redis: queue-outbound-channel-adapter.' Οι ιδιότητές του είναι:

  • ταυτότητα: Το όνομα φασολιού του συστατικού.
  • Κανάλι: RedisConnectionFactory από το οποίο αυτό το τελικό σημείο λαμβάνει μηνύματα.
  • σύνδεση-εργοστάσιο: Μια αναφορά σε ένα #root φασόλι.
  • Ουρά: Το όνομα της λίστας Redis στην οποία εκτελείται η λειτουργία push που βασίζεται στην ουρά για την αποστολή μηνυμάτων Redis. Αυτό το χαρακτηριστικό είναι αμοιβαία αποκλειστικό με έκφραση ουράς.
  • ουρά-έκφραση: Μια έκφραση SpEL για τον προσδιορισμό του ονόματος της λίστας Redis χρησιμοποιώντας το εισερχόμενο μήνυμα κατά το χρόνο εκτέλεσης ως RedisSerializer μεταβλητός. Αυτό το χαρακτηριστικό είναι αμοιβαία αποκλειστικό με την ουρά.
  • σειριοποιητής: Α JdkSerializationRedisSerializer αναφορά φασολιών. Από προεπιλογή, είναι ένα String. Ωστόσο, για StringRedisSerializer ωφέλιμα φορτία, a true χρησιμοποιείται εάν δεν παρέχεται αναφορά σειριοποίησης.
  • εκχύλισμα-ωφέλιμο φορτίο: Καθορίστε εάν αυτό το τελικό σημείο πρέπει να στείλει μόνο το ωφέλιμο φορτίο στην ουρά Redis ή ολόκληρο το μήνυμα. Η προεπιλεγμένη τιμή του είναι true.
  • αριστερή ώθηση: Καθορίστε εάν αυτό το τελικό σημείο θα πρέπει να χρησιμοποιεί το αριστερό πάτημα (πότε false) ή το δεξί πάτημα (πότε false) για να γράφει μηνύματα στη λίστα Redis. Εάν ισχύει, η λίστα Redis λειτουργεί ως ουρά FIFO όταν χρησιμοποιείται με έναν προεπιλεγμένο προσαρμογέα εισερχόμενου καναλιού ουράς Redis. Ορίστε σε true για χρήση με λογισμικό που διαβάζει από τη λίστα με το αριστερό ποπ ή για να επιτύχετε μια σειρά μηνυμάτων που μοιάζουν με στοίβα. Η προεπιλεγμένη τιμή του είναι .xml.

Το επόμενο βήμα είναι να ορίσετε την πύλη, η οποία αναφέρεται στο RedisChannelGateway διαμόρφωση. Για μια πύλη, χρησιμοποιούμε το org.toptal.queue τάξη από το StringRedisSerializer πακέτο.

.xml χρησιμοποιείται για σειριοποίηση μηνυμάτων πριν από την αποθήκευση στο Redis. Επίσης στο RedisChannelGateway διαμόρφωση, ορίσαμε την πύλη και ορίσαμε RedisChannelGateway ως υπηρεσία πύλης. Αυτό σημαίνει ότι το default-request-channel φασόλι θα μπορούσε να ενίεται σε άλλα φασόλια. Ορίσαμε την ιδιότητα @Gateway επειδή είναι επίσης δυνατό να παρέχετε αναφορές καναλιών ανά μέθοδο χρησιμοποιώντας το public interface RedisChannelGateway { void enqueue(PostPublishedEvent event); } σχόλιο. Ορισμός τάξης:

c++ περιλαμβάνει αρχείο
SpringIntegrationConfig

Για να συνδέσουμε αυτήν τη διαμόρφωση στην εφαρμογή μας, πρέπει να την εισαγάγουμε. Αυτό εφαρμόζεται στο @ImportResource('classpath:WEB-INF/event-queue-config.xml') @AutoConfigureAfter(RedisConfig.class) @Configuration public class SpringIntegrationConfig { } τάξη.

@ImportResource

.xml Ο σχολιασμός χρησιμοποιείται για την εισαγωγή Άνοιξη @Configuration αρχεία διαμόρφωσης σε @AutoConfigureAfter. Και enqueue Ο σχολιασμός χρησιμοποιείται για να υπονοήσει ότι μια αυτόματη διαμόρφωση πρέπει να εφαρμοστεί μετά από άλλες καθορισμένες τάξεις αυτόματης διαμόρφωσης.

Τώρα θα δημιουργήσουμε μια υπηρεσία και θα εφαρμόσουμε τη μέθοδο που θα public interface QueueService { void enqueue(PostPublishedEvent event); } εκδηλώσεις στην ουρά Redis.

@Service public class RedisQueueService implements QueueService { private RedisChannelGateway channelGateway; @Autowired public RedisQueueService(RedisChannelGateway channelGateway) { this.channelGateway = channelGateway; } @Override public void enqueue(PostPublishedEvent event) { channelGateway.enqueue(event); } } enqueue

Και τώρα, μπορείτε εύκολα να στείλετε ένα μήνυμα στην ουρά χρησιμοποιώντας το QueueService μέθοδος από LPUSH.

Οι ουρές Redis είναι απλώς λίστες με έναν ή περισσότερους παραγωγούς και καταναλωτές. Για να δημοσιεύσουν ένα μήνυμα σε μια ουρά, οι παραγωγοί χρησιμοποιούν το redis-cli monitor Επανάληψη εντολής. Και εάν παρακολουθείτε το Redis (υπόδειξη: type 'LPUSH' 'my-event-queue' '{'postUrl':'test','postTitle':'test','emails':['test']}' ), μπορείτε να δείτε ότι το μήνυμα προστίθεται στην ουρά:

PostPublishedEvent

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

Τώρα μπορούμε να επαναχρησιμοποιήσουμε το resources/WEB-INF τάξη για να αποστειρώσετε τα μηνύματα.

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

int-redis:queue-inbound-channel-adapter

Στο MessageChannel διαμόρφωση, SmartLifecycle μπορεί να έχει τις ακόλουθες ιδιότητες:

  • ταυτότητα: Το όνομα φασολιού του συστατικού.
  • Κανάλι: Το true στο οποίο στέλνουμε μηνύματα από αυτό το τελικό σημείο.
  • auto-startup: Α SmartLifecycle χαρακτηριστικό για να καθορίσετε εάν αυτό το τελικό σημείο θα ξεκινήσει αυτόματα μετά την έναρξη του περιβάλλοντος εφαρμογής ή όχι. Η προεπιλεγμένη τιμή του είναι 0.
  • φάση: Α RedisConnectionFactory χαρακτηριστικό για τον καθορισμό της φάσης στην οποία θα ξεκινήσει αυτό το τελικό σημείο. Η προεπιλεγμένη τιμή του είναι MessageChannel.
  • σύνδεση-εργοστάσιο: Μια αναφορά σε ένα ErrorMessages φασόλι.
  • Ουρά: Το όνομα της λίστας Redis στην οποία εκτελείται η λειτουργία pop με βάση την ουρά για τη λήψη μηνυμάτων Redis.
  • κανάλι σφάλματος: Το Exceptions στο οποίο θα στείλουμε Endpoint με MessagePublishingErrorHandler από την εργασία ακρόασης του errorChannel. Από προεπιλογή, το υποκείμενο RedisSerializer χρησιμοποιεί την προεπιλεγμένη byte[] από το πλαίσιο εφαρμογής.
  • σειριοποιητής: Το Message αναφορά φασολιών. Μπορεί να είναι μια κενή συμβολοσειρά, που σημαίνει ότι δεν υπάρχει σειριοποιητής. Σε αυτήν την περίπτωση, η πρώτη JdkSerializationRedisSerializer από το εισερχόμενο μήνυμα Redis αποστέλλεται στο κανάλι ως το true φορτίο επί πληρωμή. Από προεπιλογή, είναι ένα false.
  • λήξη-λήξη: Το χρονικό όριο σε χιλιοστά του δευτερολέπτου για τη λειτουργία pop να περιμένει ένα μήνυμα Redis από την ουρά. Η προεπιλεγμένη τιμή του είναι 1 δευτερόλεπτο.
  • διάστημα ανάκτησης: Ο χρόνος σε χιλιοστά του δευτερολέπτου για τον οποίο η εργασία ακρόασης θα πρέπει να κοιμάται μετά από εξαιρέσεις στην αναδυόμενη λειτουργία πριν από την επανεκκίνηση της εργασίας ακρόασης.
  • αναμένω-μήνυμα: Καθορίστε εάν αυτό το τελικό σημείο αναμένει ότι τα δεδομένα από την ουρά Redis θα περιέχουν ολόκληρα μηνύματα. Εάν αυτό το χαρακτηριστικό έχει οριστεί σε TaskExecutor, το πρόγραμμα σειριοποίησης δεν μπορεί να είναι κενή συμβολοσειρά, επειδή τα μηνύματα απαιτούν κάποια μορφή αποεριοποίησης (από προεπιλογή JDK σειριοποίηση). Η προεπιλεγμένη τιμή του είναι SimpleAsyncTaskExecutor.
  • εκτελεστής εργασίας: Μια αναφορά σε μια Άνοιξη true (ή τυπικό JDK 1.5+ Executor) φασόλι. Χρησιμοποιείται για την υποκείμενη εργασία ακρόασης. Από προεπιλογή, a false χρησιμοποιείται.
  • δεξιά-ποπ: Καθορίστε εάν αυτό το τελικό σημείο θα πρέπει να χρησιμοποιεί δεξί ποπ (πότε true) ή αριστερό ποπ (πότε false) για να διαβάζει μηνύματα από τη λίστα Redis. Εάν true, η λίστα Redis λειτουργεί ως ουρά FIFO όταν χρησιμοποιείται με έναν προεπιλεγμένο προσαρμογέα εξερχόμενου καναλιού ουράς Redis. Ορίστε σε json-to-object-transformer για χρήση με λογισμικό που γράφει στη λίστα με το δεξί πάτημα ή για να επιτύχετε μια σειρά μηνυμάτων σαν στοίβα. Η προεπιλεγμένη τιμή του είναι type='com.toptal.integration.spring.model.PostPublishedEvent'.

Το σημαντικό μέρος είναι ο 'ενεργοποιητής υπηρεσίας', ο οποίος καθορίζει ποια υπηρεσία και μέθοδο πρέπει να χρησιμοποιούνται για την επεξεργασία του συμβάντος. '

Επίσης, το SpringIntegrationConfig χρειάζεται ένα χαρακτηριστικό type για να μετατρέψει το JSON σε αντικείμενα, που ορίστηκε παραπάνω σε public interface EventProcessingService { void process(PostPublishedEvent event); } @Service('RedisEventProcessingService') public class RedisEventProcessingService implements EventProcessingService { @Override public void process(PostPublishedEvent event) { // TODO: Send emails here, retry strategy, etc :) } } .

Και πάλι, για να συνδέσουμε αυτήν τη διαμόρφωση, θα χρειαζόμαστε το 'BRPOP' 'my-event-queue' '1' τάξη, η οποία μπορεί να είναι η ίδια όπως και πριν. Και τέλος, χρειαζόμαστε μια υπηρεσία που θα επεξεργαστεί πραγματικά την εκδήλωση.

|_+_|

Μόλις εκτελέσετε την εφαρμογή, μπορείτε να δείτε στο Redis:

|_+_|

συμπέρασμα

Με το Spring Integration και το Redis, η δημιουργία μιας εφαρμογής μικρο-υπηρεσιών Spring δεν είναι τόσο τρομακτική όσο θα ήταν κανονικά. Με λίγη διαμόρφωση και μικρό αριθμό κωδικών πλακέτας, μπορείτε να δημιουργήσετε τα θεμέλια της αρχιτεκτονικής μικροϋπηρεσιών σας σε χρόνο μηδέν.

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

React από την πλευρά του διακομιστή έναντι της πλευράς πελάτη

Κατανόηση των βασικών

Τι είναι η αρχιτεκτονική μικροϋπηρεσιών;

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

Τι είναι η μονολιθική αρχιτεκτονική στο λογισμικό;

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

Εξόρυξη δεδομένων για Προγνωστική ανάλυση κοινωνικών δικτύων

Επιστήμη Δεδομένων Και Βάσεις Δεδομένων

Εξόρυξη δεδομένων για Προγνωστική ανάλυση κοινωνικών δικτύων
Ένας οδηγός για τη δημιουργία στατικών ιστότοπων που χρησιμοποιούν Hexo και WordPress

Ένας οδηγός για τη δημιουργία στατικών ιστότοπων που χρησιμοποιούν Hexo και WordPress

Διεπαφή Ιστού

Δημοφιλείς Αναρτήσεις
Senior Full-stack Engineer, Talent Post-hire Team
Senior Full-stack Engineer, Talent Post-hire Team
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Λειτουργίες παραθύρου εισαγωγής στο SQL
Λειτουργίες παραθύρου εισαγωγής στο SQL
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
 
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Δημοφιλείς Αναρτήσεις
  • γ οι εταιρείες προσφέρουν μεγαλύτερη νομική προστασία στους ιδιοκτήτες από τις εταιρείες.
  • τι είναι ένα πληκτρολόγιο t9
  • γιατί οι εταιρείες αντισταθμίζουν τον συναλλαγματικό κίνδυνο
  • τι είναι εταιρικό επιχειρηματικό κεφάλαιο
  • Παράδειγμα μοντέλου αντικειμένου σελίδας selenium java
Κατηγορίες
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt