Kommunikationsaufwand - Implementieren von Microservices in AWS

Kommunikationsaufwand

Durch die Aufteilung monolithischer Anwendungen in kleine Microservices steigt der Kommunikationsaufwand, da Microservices miteinander kommunizieren müssen. Aufgrund des einfachen Kommunikationsprotokolls wird häufig REST über HTTP verwendet. Doch hohe Nachrichtenvolumen können Probleme verursachen. In vielen Fällen empfiehlt sich die Konsolidierung von Services, die viele Nachrichten senden. Wenn Sie ein zunehmende Anzahl von Services konsolidieren, nur um den Kommunikationsaufwand zu reduzieren, sollten Sie die problematischen Domänen und Ihr Domänenmodell überprüfen.

Protokolle

In diesem Whitepaper werden im Abschnitt Asynchrone Kommunikation und einfaches Messaging verschiedene mögliche Protokolle erörtert. Für Microservices ist es üblich, einfache Protokolle wie HTTP zu verwenden. Die von Services ausgetauschten Nachrichten können auf unterschiedliche Weise kodiert werden, z. B. in einem für Menschen lesbaren Format wie JSON oder YAML oder in effizienten Binärformaten wie Avro oder Protocol Buffers.

Caching

Caches sind eine großartige Möglichkeit, Latenz und Kommunikationsaufwand von Microservices-Architekturen zu reduzieren. Je nach Anwendungsfall und Engpässen sind mehrere Caching-Schichten möglich. Viele in AWS ausgeführten Microservice-Anwendungen verwenden Amazon ElastiCache, um die Anzahl der Aufrufe an andere Microservices zu reduzieren, indem Ergebnisse lokal zwischengespeichert werden. API Gateway bietet zur Entlastung der Backend-Server eine integrierte Caching-Schicht. Darüber hinaus ist das Caching nützlich, um die Last der Datenpersistenzschicht zu reduzieren. Die Herausforderung bei allen Caching-Mechanismen besteht darin, die richtige Balance zwischen einer guten Cache-Trefferrate und der Aktualität und Konsistenz der Daten zu finden.